Métodos de requisição HTTP explicados

O HTTP define nove métodos de requisição padrão, mas a maior parte do tráfego diário usa apenas alguns. Esta tabela explica cada método, se é seguro e idempotente e os códigos retornados por uma chamada bem-sucedida.

Atualizado:

MétodoFinalidadeSeguro?Idempotente?Status de sucesso
GETRetrieve a resourceYesYes200 OK
HEADRetrieve headers only, no bodyYesYes200 OK
POSTCreate a resource or trigger an actionNoNo201 Created
PUTReplace a resource entirelyNoYes200 OK / 204 No Content
PATCHApply a partial updateNoNo200 OK
DELETERemove a resourceNoYes200 OK / 204 No Content
OPTIONSCORS preflight; list allowed methodsYesYes204 / 200 OK
TRACEEcho the request back for diagnosticsYesYes200 OK
CONNECTOpen a tunnel, e.g. HTTPS via a proxyNoNo200 OK

Notas

Perguntas frequentes

Qual é a diferença entre GET e POST?
GET recupera um recurso sem efeitos colaterais e pode ser repetido com segurança; os parâmetros vão na URL. POST cria algo ou dispara uma ação, pode alterar o estado e não deve ser repetido às cegas.
O que significa um método HTTP ser seguro?
Um método seguro nunca modifica o estado do servidor, então pode ser chamado sem risco. GET, HEAD, OPTIONS e TRACE são seguros; POST, PUT, PATCH e DELETE não são.
Qual é a diferença entre PUT e PATCH?
PUT substitui todo o recurso pelo que você envia; PATCH aplica uma alteração parcial apenas em campos selecionados. PUT é idempotente, repeti-lo dá o mesmo resultado; PATCH em geral não é.
O que o método HEAD faz?
HEAD funciona como GET, mas não retorna corpo de resposta. É útil para verificar se um recurso existe, seu tamanho ou cabeçalhos, sem baixar todo o conteúdo.