Anda di halaman 1dari 2

Quando falamos em como enviar um formulrio, vem em mente os mtodos GET e POST, esses so

os mtodos utilizados para enviar um formulrio. Mas quando fazemos uma requisio HTTP, ns
sempre utilizamos um desses mtodos, normalmente o GET.
Se voc digita um endereo na barra de endereo seu navegador e aperta a tecla enter (ou clica no
boto ir), o navegador faz uma requisio HTTP para o servidor do endereo digitado e o mtodo
dessa requisio o GET. Se voc clica em um link em um site, o navegador tambm se encarrega de
fazer um requisio HTTP com o mtodo GET, para buscar o contedo da pgina que voc clicou.
Como Funciona o Mtodo GET
O mtodo GET utiliza a prpria URI (normalmente chamada de URL) para enviar dados ao servidor,
quando enviamos um formulrio pelo mtodo GET, o navegador pega as informaes do formulrio e
coloca junto com a URI de onde o formulrio vai ser enviado e envia, separando o endereo
da URI dos dados do formulrio por um ? (ponto de interrogao).
Quando voc busca algo no Google, ele faz uma requisio utilizando o mtodo GET, voc pode ver na
barra de endereo do seu navegador que o endereo ficou com um ponto de interrogao no meio, e
depois do ponto de interrogao voc pode ler, dentre outros caracteres, o que voc pesquisou no
Google.
Quando Utilizar o Mtodo GET
Voc deve utilizar o mtodo GET sempre que a requisio que voc faz no altere o estado do
servidor, tipo uma consulta, uma busca ou qualquer outra coisa que, alm de no alterar o estado do
servidor, tambm possa sempre reproduzir os mesmos resultados quando fizer a mesma requisio e
for passado os mesmos parmetros para esta requisio.
Voltando ao exemplo do Google, na ferramenta de busca dele, quando a busca feita, ele deixa
a URI toda na barra de endereo do navegador, voc pode, por exemplo, copiar essaURI e mandar
para algum, dizendo para ele acessar o terceiro item da busca, e se esse algum acessar essa
mesma URI, vai achar o mesmo terceiro item que voc indicou, quantas vezes for necessrio (lgico
que de tempos em tempos, o Google atualiza as posies das pginas).
O nome dado ao comportamento de quando voc deve utilizar o GET idempotente, que nada mas
do que j o explicado acima: uma requisio idempotente deve retornar a mesma coisa no importa
quantas vezes ela feita, ou seja, deve ter sempre os mesmos efeitos colaterais, no importando
quantas requisies idempotentes so feitas.
Requisio com o mtodo GET pode ter seu retorno cacheados (armazenados em cache), pois no se
alteraria o retorno se fizssemos uma mesma requisio GET. Isso pode causar um erro comum, que
se voc precisar sempre que as requisies GET cheguem ao servidor, elas podem no chegar sempre
que uma requisio 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 requisio chegue sempre no servidor,
no utilize GET.
O mtodo GET ainda pode ter limitaes quanto ao tamanho dos dados a serem enviados e tambm
ao que pode ser enviado. Quanto ao tamanho, pode-se ter uma restrio ao tamanho da URI que
pode ser enviada em um requisio, e se seus dados ultrapassarem esse tamanho, provavelmente
ocorrer um erro, ou seus dados vo ser passados incompletos.
Quanto ao que pode ser enviado, como os dados vo ser enviados pela URI, s podero ser enviados
caracteres aceitos na URI, se voc quer enviar dados binrios (como arquivo, imagens e outros), no
poder usar GET.
Como Funciona o Mtodo POST
O mtodo POST envia os dados colocando-os no corpo da mensagem. Ele deixa a URIseparada dos
dados que sero enviados e com isso podemos enviar qualquer tipo de dados por esse mtodo.
Quando voc faz um registro em um formulrio e depois de enviar a URI no tem o ponto de
interrogao separando os dados que voc digitou, provavelmente o formulrio foi enviado pelo
mtodo POST.
Quando Utilizar o Mtodo POST
Utilizamos o mtodo POST sempre que vamos alterar alguma coisa no servidor, ou sempre que
queremos enviar dados que no podem ser enviados pelo mtodo GET, como arquivos. Esse mtodo
utilizado em formulrio de cadastro e registro de usurios, envio de dados para alterao do
sistema, cadastro de dados em sistemas de sites e outros.
O retorno de uma requisio com mtodo POST normalmente no deve ser cacheada(armazenada
em cache) ento se voc quiser que uma requisio sempre chegue ao servidor quando ela for feita,
utilize POST.
A diferena simples, sempre que for buscar ou apenas consultar alguma coisa, utilize GET e se for
fazer alguma alterao com a requisio, envio de arquivo ou os dados forem muitos, utilize POST.
Diferenas no Lado do Servidor entre GET e POST (PHP, CGI)
Enviar dados pelo mtodo GET e POST diferente, ento, o servidor pega esses dados de diferentes
maneiras.
No PHP, quando enviamos dados pelo mtodo GET, ele cria um array identificado por $_GET, que
contm todos os dados enviados por esse mtodo. Quando enviamos os dados pelo mtodo POST,
o PHP cria um array identificado por $_POST, tambm com todos os dados enviados por esse mtodo.
J em um script CGI, quando utilizamos o mtodo GET, os dados so recebido em uma varivel de
ambiente, e com o mtodo POST, os dados so recebidos pela entrada padro (stdin).
Links interessantes sobre GET e POST: