O que é o método POST?
A ferramenta principal para enviar dados
Enquanto o método GET serve para ler dados, o método POST serve para enviar novos dados para o servidor.
Imagine preencher um formulário de carteira de motorista e entregá-lo ao atendente no Detran. Você não está apenas pedindo informações; está enviando um novo registro que será criado e salvo. No mundo do desenvolvimento web, quando um navegador cria uma nova conta de usuário, salva um post de blog ou registra um pagamento, ele usa uma requisição POST.
Mudando o estado do servidor
Diferente das requisições GET, as requisições POST não são seguras (not safe). Isso significa que elas alteram intencionalmente o estado do servidor. Elas criam registros em um banco de dados, enviam e-mails ou disparam transações financeiras.
Como elas mudam as coisas, o seu navegador trata as requisições POST com mais cuidado. Você não pode digitar uma URL na sua barra de endereços e apertar Enter para fazer uma requisição POST: o navegador sempre enviará uma requisição GET quando você fizer isso.
O conceito de não-idempotência
As requisições POST não são idempotentes (non-idempotent). Isso significa que se você fizer a mesma requisição duas vezes, o estado do servidor vai mudar duas vezes.
Se você clicar em "Finalizar Pedido" em um carrinho de compras e enviar uma requisição POST, o servidor cria o pedido. Se você atualizar acidentalmente a página ou clicar no mesmo botão novamente, uma segunda requisição POST será enviada e o servidor criará um segundo pedido idêntico. É por isso que os navegadores costumam pedir confirmação antes de recarregar uma página que veio do envio de um formulário.
Resumo
| Conceito | Ponto Chave |
|---|---|
| Propósito | Enviar dados ao servidor, geralmente para criar um novo recurso |
| Não é Seguro | Modifica dados e muda o estado do servidor |
| Não é Idempotente | Repetir a requisição tem um efeito diferente (cria múltiplos registros) |
| Uso | Principalmente formulários HTML com method="POST" e chamadas de API |
Continue com a aula 2
Anatomia de uma requisição POST
A requisição POST leva os dados no corpo, e o cabeçalho Content-Type informa ao servidor o formato.
Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.