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 |