Usando GET e POST corretamente

Pelo título do tópico parece um assunto básico, correto? E realmente é, mas infelizmente ainda vejo muitos desenvolvedores fazendo o mal uso dos métodos GET e POST do protocolo HTTP. Principalmente no caso de desenvolvedores Web, esse assunto deveria ser pré-requisito antes mesmo de aprender qualquer linguagem de programação, ou então, até antes mesmo de aprender HTML.

A especificação do protocolo HTTP diz, que o mesmo possui 8 métodos, porém os métodos geralmente mais usados são GET e POST. Quando aprendemos a desenvolver para Web, é comum lermos ou sermos informados, que o método POST deve ser usado em formulários e que o método GET deve ser usado através de links. Isso é uma inverdade.

Tanto o método GET, como o método POST, podem ser usados de várias maneiras, contudo existem boas práticas que indicam as melhores maneiras de fazer o uso desses métodos, a seguir explicarei melhor quais são essas maneiras.

Explicando GET e POST

O método GET faz a passagem de parâmetros para o servidor HTTP através de uma URL, enquanto o método POST envia um documento ao servidor HTTP com o conteúdo contido nesse documento (message body).

Quando usar GET e quando usar POST?

O método GET deve ser usado para acessar recursos, ou seja, para recuperar informações (dados), enquanto o método POST deve ser usado em ações que modifiquem essas informações.

Sendo mais claro, o método POST é usado em ações destrutivas, como: inscrição em algum serviço, modificação do estado de algum recurso no banco de dados, etc. Enquanto o método GET é usado em ações não destrutivas, como: buscas, listagens, etc.

Na prática

GET deve ser usado em operações seguras, justamente por ser indicado em ações que não modifiquem o estado de um recurso, pois imagine que você tenha em sua aplicação um link (GET) que leve a remoção de um determinado ítem, o que poderia acontecer no caso desse link ser indexado por algum web crawler? Pois bem, esse é um dos casos no qual o método POST seria indicado (operações não-seguras).

Exemplos reais

GET: query, buscas, filtros, listagem.

POST: inscrição em serviços (newsletter, por exemplo), alteração/edição/remoção de recursos em banco de dados, envio de email.

Referências

Architecture of the World Wide Web

The fundamental differences between “GET” and “POST”

URIs, Addressability, and the use of HTTP GET and POST

Form Submission

Web

Se você gostou desse tópico, por favor considere deixar um comentário ou se inscreva no feed e tenha no futuro todos os tópicos entregues diretamente no seu agregador.

Comentários

3 Respostas para “Usando GET e POST corretamente”

Deixe seu Comentário

(obrigatório)

(obrigatório)