Métodos de solicitação HTTP


O que é HTTP?

O Hypertext Transfer Protocol (HTTP) foi projetado para permitir a comunicação entre clientes e servidores.

O HTTP funciona como um protocolo de solicitação-resposta entre um cliente e um servidor.

Exemplo: Um cliente (navegador) envia uma solicitação HTTP ao servidor; em seguida, o servidor retorna uma resposta ao cliente. A resposta contém informações de status sobre a solicitação e também pode conter o conteúdo solicitado.


Métodos HTTP

  • PEGUE
  • PUBLICAR
  • COLOCAR
  • CABEÇA
  • EXCLUIR
  • CORREÇÃO
  • OPÇÕES

Os dois métodos HTTP mais comuns são: GET e POST.


O método GET

GET é usado para solicitar dados de um recurso especificado.

GET é um dos métodos HTTP mais comuns.

Observe que a string de consulta (pares nome/valor) é enviada na URL de uma solicitação GET:

/test/demo_form.php?name1=value1&name2=value2

Algumas outras notas sobre solicitações GET:

  • As solicitações GET podem ser armazenadas em cache
  • As solicitações GET permanecem no histórico do navegador
  • As solicitações GET podem ser marcadas
  • As solicitações GET nunca devem ser usadas ao lidar com dados confidenciais
  • As solicitações GET têm restrições de comprimento
  • As solicitações GET são usadas apenas para solicitar dados (não modificar)

O método POST

POST é usado para enviar dados a um servidor para criar/atualizar um recurso.

Os dados enviados ao servidor com POST são armazenados no corpo da solicitação HTTP:

POST /test/demo_form.php HTTP/1.1
Host: w3schools.com

name1=value1&name2=value2

POST é um dos métodos HTTP mais comuns.

Algumas outras notas sobre solicitações POST:

  • As solicitações POST nunca são armazenadas em cache
  • As solicitações POST não permanecem no histórico do navegador
  • Solicitações POST não podem ser marcadas
  • As solicitações POST não têm restrições de comprimento de dados


O método PUT

PUT é usado para enviar dados a um servidor para criar/atualizar um recurso.

A diferença entre POST e PUT é que as solicitações PUT são idempotentes. Ou seja, chamar a mesma solicitação PUT várias vezes sempre produzirá o mesmo resultado. Por outro lado, chamar uma solicitação POST repetidamente tem efeitos colaterais de criar o mesmo recurso várias vezes.


O método HEAD

HEAD é quase idêntico a GET, mas sem o corpo da resposta.

Em outras palavras, se GET /users retornar uma lista de usuários, HEAD /users fará a mesma solicitação, mas não retornará a lista de usuários.

As solicitações HEAD são úteis para verificar o que uma solicitação GET retornará antes de realmente fazer uma solicitação GET - como antes de baixar um arquivo grande ou corpo de resposta.


O método DELETE

O método DELETE exclui o recurso especificado.


O Método OPÇÕES

O método OPTIONS descreve as opções de comunicação para o recurso de destino.


Comparar GET x POST

A tabela a seguir compara os dois métodos HTTP: GET e POST.

  GET POST
BACK button/Reload Harmless Data will be re-submitted (the browser should alert the user that the data are about to be re-submitted)
Bookmarked Can be bookmarked Cannot be bookmarked
Cached Can be cached Not cached
Encoding type application/x-www-form-urlencoded application/x-www-form-urlencoded or multipart/form-data. Use multipart encoding for binary data
History Parameters remain in browser history Parameters are not saved in browser history
Restrictions on data length Yes, when sending data, the GET method adds the data to the URL; and the length of a URL is limited (maximum URL length is 2048 characters) No restrictions
Restrictions on data type Only ASCII characters allowed No restrictions. Binary data is also allowed
Security GET is less secure compared to POST because data sent is part of the URL

Never use GET when sending passwords or other sensitive information!
POST is a little safer than GET because the parameters are not stored in browser history or in web server logs
Visibility Data is visible to everyone in the URL Data is not displayed in the URL