Sei sulla pagina 1di 2

Quando falamos em como enviar um formulário, vem em mente os métodos GET e POST, esses são os métodos utilizados para enviar um formulário. Mas quando fazemos uma requisição HTTP, nós sempre utilizamos um desses métodos, normalmente o GET.

Se você digita um endereço na barra de endereço seu navegador e aperta a tecla enter (ou clica no botão ir), o navegador faz uma requisição HTTP para o servidor do endereço digitado e o método dessa requisição é o GET. Se você clica em um link em um site, o navegador também se encarrega de fazer um requisição HTTP com o método GET, para buscar o conteúdo da página que você clicou.

Como Funciona o Método GET

O método GET utiliza a própria URI (normalmente chamada de URL) para enviar dados ao servidor,

quando enviamos um formulário pelo método GET, o navegador pega as informações do formulário e coloca junto com a URI de onde o formulário vai ser enviado e envia, separando o endereço da URI dos dados do formulário por um “?” (ponto de interrogação).

Quando você busca algo no Google, ele faz uma requisição utilizando o método GET, você pode ver na barra de endereço do seu navegador que o endereço ficou com um ponto de interrogação no meio, e depois do ponto de interrogação você pode ler, dentre outros caracteres, o que você pesquisou no Google.

Quando Utilizar o Método GET

Você deve utilizar o método GET sempre que a requisição que você faz não altere o estado do servidor, tipo uma consulta, uma busca ou qualquer outra coisa que, além de não alterar o estado do servidor, também possa sempre reproduzir os mesmos resultados quando fizer a mesma requisição e for passado os mesmos parâmetros para esta requisição.

Voltando ao exemplo do Google, na ferramenta de busca dele, quando a busca é feita, ele deixa

a URI toda na barra de endereço do navegador, você pode, por exemplo, copiar essaURI e mandar

para alguém, dizendo para ele acessar o terceiro item da busca, e se esse alguém acessar essa mesma URI, vai achar o mesmo terceiro item que você indicou, quantas vezes for necessário (lógico que de tempos em tempos, o Google atualiza as posições das páginas).

O nome dado ao comportamento de quando você deve utilizar o GET é idempotente, que nada mas é

do que já o explicado acima: uma requisição idempotente deve retornar a mesma coisa não importa quantas vezes ela é feita, ou seja, deve ter sempre os mesmos efeitos colaterais, não importando

quantas requisições idempotentes são feitas.

Requisição com o método GET pode ter seu retorno cacheados (armazenados em cache), pois não se alteraria o retorno se fizéssemos uma mesma requisição GET. Isso pode causar um erro comum, que se você precisar sempre que as requisições GET cheguem ao servidor, elas podem não chegar sempre que uma requisição é feita, pois se estiver no cache de algum proxy ou do seu navegador, o retorno pode vir antes de chegar no servidor. Se você precisa que uma requisição chegue sempre no servidor, não utilize GET.

O método GET ainda pode ter limitações quanto ao tamanho dos dados a serem enviados e também

ao que pode ser enviado. Quanto ao tamanho, pode-se ter uma restrição ao tamanho da URI que pode ser enviada em um requisição, e se seus dados ultrapassarem esse tamanho, provavelmente ocorrerá um erro, ou seus dados vão ser passados incompletos.

Quanto ao que pode ser enviado, como os dados vão ser enviados pela URI, só poderão ser enviados caracteres aceitos na URI, se você quer enviar dados binários (como arquivo, imagens e outros), não poderá usar GET.

Como Funciona o Método POST

O método POST envia os dados colocando-os no corpo da mensagem. Ele deixa a URIseparada dos

dados que serão enviados e com isso podemos enviar qualquer tipo de dados por esse método. Quando você faz um registro em um formulário e depois de enviar a URI não tem o ponto de interrogação separando os dados que você digitou, provavelmente o formulário foi enviado pelo método POST.

Quando Utilizar o Método POST

Utilizamos o método POST sempre que vamos alterar alguma coisa no servidor, ou sempre que queremos enviar dados que não podem ser enviados pelo método GET, como arquivos. Esse método

é utilizado em formulário de cadastro e registro de usuários, envio de dados para alteração do sistema, cadastro de dados em sistemas de sites e outros.

O retorno de uma requisição com método POST normalmente não deve ser cacheada(armazenada

em cache) então se você quiser que uma requisição sempre chegue ao servidor quando ela for feita, utilize POST.

A diferença é simples, sempre que for buscar ou apenas consultar alguma coisa, utilize GET e se for

fazer alguma alteração com a requisição, envio de arquivo ou os dados forem muitos, utilize POST.

Diferenças no Lado do Servidor entre GET e POST (PHP, CGI)

Enviar dados pelo método GET e POST é diferente, então, o servidor pega esses dados de diferentes maneiras.

No PHP, quando enviamos dados pelo método GET, ele cria um array identificado por $_GET, que contém todos os dados enviados por esse método. Quando enviamos os dados pelo método POST, o PHP cria um array identificado por $_POST, também com todos os dados enviados por esse método.

Já em um script CGI, quando utilizamos o método GET, os dados são recebido em uma variável de ambiente, e com o método POST, os dados são recebidos pela entrada padrão (stdin).

Links interessantes sobre GET e POST: