Principais diferenças entre os métodos HTTP GET e POST
Sendo informal e direto, o HTTP – Hypertext Transfer Protocol(Protocolo de Transferência de Dados) é um protocolo ou padrão de rede implementado em cima do TCP para que browsers e servidores possam se comunicar.
Um cliente HTTP é um browser, ou seja, Chrome, Firefox, Internet Explore, entre outros, são software’s que se comunicam com servidores através do HTTP. O tipo de servidor a que me refiro aqui também são software’s, como por exemplo, o Apache e o IIS(Microsoft).
Os principais métodos de comunicação HTTP são: GET e POST.
Visibilidade – A grande diferença entre os métodos GET e POST provavelmente é a visibilidade. Uma requisição GET é enviada como string anexada a URL, enquanto que a requisição POST é encapsulada junto ao corpo da requisição HTTP e não pode ser vista.
Tamanho – Como a requisição GET é feita via URL, obviamente há uma limitação no tamanho da mensagem enviada. A string não pode conter mais que 255 caracteres(embora exista diferenças entre navegadores, mas em geral o limite é 255). Já na requisição POST não há limitações de comprimento da mensagem, já que a mesma é enviada no corpo da requisição HTTP.
Performance – A requisição GET é relativamente mais rápida, já que ela é mais simples. Na requisição POST há uma perda de tempo no encapsulamento da mensagem.
Tipos – Já que GET é enviado via URL, então nós sabemos que ela só transporta textos. A requisição POST não tem restrições, pode transportar tanto texto, como dados binários.
Favoritos/Bookmarks – Por se tratar apenas de uma URL, a requisição GET pode ser armazenada em cache, ou em um sistema de bookmark(favoritos). A mesma coisa não é possível para requisições POST.
Método HTML Padrão – GET é o método HTML padrão. Para submeter um formulário HTML usando POST é preciso especificar no atributo “method” o valor “POST”.
Dados – As requisições GET são limitadas ao padrão ASCII, enquanto que requisições POST também podem usar o atributo “enctype” com o valor “multipart/form-data”, que faz uso do padrão UCS(Universal Multiple-Octet Coded Character Set).
Boa definição sobre GET e POST Marcelo, vc consegui ser rápido e claro !
Valeu Rafael! Obrigado por acessar o blog e pelo comentário. Abs!
Ótimo post! Parabéns!
Valeu, Sara!
Parabéns, simples e direto. Está salva nos meus favoritos. Ótimo post.
Valeu Alex!
Parabéns, perfeita explicação!
Valeu Kaique! Abs!
Parabéns pelo POST, porém não concordo com o seguinte trecho do seu artigo:
” …
enquanto que a requisição POST é encapsulada junto ao corpo da requisição HTTP e não pode ser vista … ”
Todo o conteúdo enviado através de uma requisição HTTP pode ser visto, pois este protocolo não utiliza camada de criptografia (SSL). Sugiro que altere a frase apenas para que fique claro isso, pois algumas pessoas que estão iniciando o aprendizado podem se confundir.
Se por exemplo usarmos um software numa rede corporativa para “escutar” os pacotes trafegados na rede, conseguimos até mesmo recuperar as senhas digitadas em determinadas páginas/sistemas.
Att.
Correto, mas no trecho citado eu me refiro a questão visibilidade como um diferencial em relação ao método GET. Se um desenvolvedor precisa enviar dados para cadastro ou atualização no banco de dados, sem dúvidas o método correto é o POST. Obviamente, existem meios de interceptar uma requisição HTTP. É necessário bom senso para analisar quais informações irão trafegar e se é necessário ou não habilitar a SSL(Secure Socket Layer), como é o caso dos internet banks, lojas virtuais, etc.
Obrigado pelo comentário!
Muito boa explicação!
Aliás, todo conteúdo seu que vi até agora são excelentes.
Valeu Gleydson!
Muito bom, simples e direto! abs
Obg Thiago!
ótima explicação, sinceramente.
Valeu, Priscyla!
Nossa?! Arrasou kra.
Show de bola a explicação.
Parabéns Marcelo Oliveira, melhor explicação que eu li.
Ao Felipe Marques, obrigado por esclarecer a situação da necessidade do SSL quando se referir ao envio de senhas.
Está de parabéns,fez um excelente trabalho com esta explicação/diferenciação!
Valeu!
Viva acado de ver o seu blog, a explicação e perfeita.