Entendendo a diferença entre os Métodos GET e POST no PHP

image_pdfimage_print

É de extrema importância saber bem a diferença desses dois métodos, para que se possa utilizá-los de forma correta e na hora certa. De certa forma, os dois fazem o envio de dados através do HTTP.

GET

Este método é utilizado quando queremos passar poucas/pequenas informações para realizar uma pesquisa ou simplesmente passar uma informação para outra página através da URL (barra de endereços). O que não pode acontecer é as suas requisições resultarem em mudanças no conteúdo da resposta. A função do método GET é pura e simplesmente recuperar um recurso existente no servidor. O resultado de uma requisição GET é “cacheável” pelo cliente, ou seja, fica no histórico do navegador.

Exemplo do GET

http://www.umsite.com.br/?cat=3&pag=2&tipo=5

Para que você possa entender melhor este exemplo, você só precisa olhar para as informações que vem logo após a interrogação “?”, pois é o símbolo que indica o início dos dados passados através da URL, ou seja, pelo método GET. Se você prestar atenção, notará que sempre vem um índice e um valor logo após o sinal de igualdade (Ex.: cat=3) e quando queremos incluir mais de uma informação, acrescentamos o símbolo “&” para concatenar o restante (Ex.: cat=3&pag=2&tipo=5).

Este método é bem restrito quanto ao tamanho e quantidade das informações que são passadas pela URL. Você poderá enviar no máximo 1024 caracteres, o que limita bastante suas possibilidades com esse método. Caso você passe desse limite, você corre o risco de obter um erro da sua página, já que as informações foram passadas de forma incompleta.

Como você já percebeu, as informações enviadas ficam visíveis ao visitante, o que é uma brecha na segurança, pois um visitante malicioso pode colocar algum código de SQL Injection e fazer um belo estrago com o seu site, ou até mesmo o servidor. Então, quando queremos passar parâmetros confidenciais, como exemplo as senhas, não devemos utilizar esse método. Para isso temos o POST.

POST

Este método é mais seguro e tem uma capacidade de dados melhor que o GET. Nesse método uma conexão paralela é aberta e os dados são passados por ela. Não há restrição referente ao tamanho e os dados não são visíveis ao usuário.

Este método é feito através de formulários (Tag <form>), onde passamos informações para uma outra página que irá recebê-las e fazer o que o desenvolvedor quiser, como tratamento dos dados, armazenamento no banco de dados, etc.

Por passar dados invisíveis ao usuário, ela se torna mais segura e devemos utilizar este método quando criamos sistemas de acesso restrito com “sessões” (login/senha).

Para enviarmos algumas informações de um formulário para uma outra página, devemos incluir no atributo “method” o valor “POST” e no atributo “action” o nome do arquivo que irá receber as informações.

Exemplo do POST

<form name="formContato" method="POST" action="enviar_email.php">
<p>
Nome: <input type="text" name="nome" /><br />
E-mail: <input type="text" name="email" /><br />
Mensagem:<br />
<textarea name="mensagem" id="mensagem" cols="45" rows="5"></textarea>
</p>
<p>
<input type="submit" name="button" id="button" value="Enviar Mensagem" />
</p>
</form>

Bom, agora que temos uma visão mais geral dos dois métodos, fica mais fácil para entendermos mais pra frente como trabalhar com o envio dos dados através dos formulários e também pelos links.

Espero que tenham aprendido um pouco mais. Abraços e até mais!

Sou bacharel em Sistemas de Informação pela Estácio de Sá (Alagoas), especialista em Gestão Estratégica da Tecnologia da Informação pela Univ. Gama Filho (UGF) e pós-graduando em Gestão da Segurança da Informação pela Univ. do Sul de Santa Catarina (UNISUL). Tenho interesse por todas as áreas da informática, mas em especial em Gestão, Segurança da Informação, Ethical Hacking e Perícia Forense. Sempre disposto a receber sugestões de assuntos para criar uma postagem.

4 Responses to “Entendendo a diferença entre os Métodos GET e POST no PHP”

  1. Maria da Penha disse:

    Amei!
    Estou entrando nessa área e mim sinto encantada!

  2. augusto disse:

    Obrigado por sua épica explicação 😉

  3. Erivaldo Moreira disse:

    parabens,cara

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Quer ficar atualizado?

Inscreva-se em minha newsletter e seja notificado quando eu publicar novos artigos de graça!