tutoriais mais recente desenvolvimento web
 

Métodos HTTP: GET vs. POST


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


O que é HTTP?

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

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

Um navegador da Web pode ser o cliente e um aplicativo em um computador que hospeda um web site pode ser o servidor.

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


Duas Pedir Métodos HTTP: GET e POST

Dois métodos comumente utilizados para a solicitação-resposta entre um cliente e servidor são: GET e POST.

  • GET - solicita dados de um recurso especificado
  • POST - Dados submete a ser processado para um recurso especificado

O método GET

Note-se que a string de consulta (pares nome / valor) é enviado na URL de uma solicitação GET:

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

Algumas outras notas sobre solicitações GET:

  • GET solicitações podem ser armazenadas em cache
  • Requisições GET permanecem no histórico do navegador
  • Recebo pedidos podem ser marcadas
  • Requisições GET nunca deve ser usado quando se lida com dados sensíveis
  • Recebo pedidos têm restrições de comprimento
  • Recebo pedidos deve ser usado apenas para recuperar dados

O método POST

Note-se que a string de consulta (pares nome / valor) é enviado no corpo da mensagem HTTP de um pedido POST:

POST /test/demo_form.asp HTTP/1.1
Host: w3ii.com
name1=value1&name2=value2

Algumas outras notas sobre solicitações POST:

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

Compare GET vs. POST

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

OBTER POSTAR
botão BACK / Reload Inofensivo Os dados serão novamente submetidos (o navegador deve alertar o usuário de que os dados estão prestes a ser novamente apresentados)
Favorito Podem ser marcadas Não pode ser marcada
Em cache Pode ser armazenado em cache não em cache
tipo de codificação application / x-www-form-urlencoded application / x-www-form-urlencoded ou / form-data com várias partes. Usar codificação multipart de dados binários
História Parâmetros permanecem no histórico do navegador Os parâmetros não são salvas no histórico do navegador
Restrições quanto ao comprimento de dados Sim, ao enviar dados, o método GET adiciona os dados para o URL; e o comprimento de um URL é limitado (máximo comprimento URL é 2048 caracteres) Sem restrições
Restrições ao tipo de dados Apenas caracteres ASCII permitidos Sem restrições. Os dados binários também é permitido
Segurança GET é menos seguro em comparação com POST porque os dados enviados é parte do URL

Nunca use GET ao enviar senhas ou outras informações sensíveis!
POST é um pouco mais seguro do que GET porque os parâmetros não são armazenadas no histórico do navegador ou em logs de servidores web
Visibilidade Dados é visível para todos na URL Os dados não é exibido na URL

Outros métodos de solicitação HTTP

A tabela a seguir lista alguns outros métodos de solicitação HTTP:

Método Descrição
HEAD Mesmo que GET, mas retorna apenas os cabeçalhos HTTP e nenhum corpo documento
PUT Carrega uma representação do URI especificado
DELETE Exclui o recurso especificado
OPTIONS Retorna os métodos HTTP que o servidor suporta
CONNECT Converte a conexão pedido para um túnel TCP transparente / IP