É 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!
Execelente explicação, ajudou muito, obrigado!
Bom dia Diego, gostaria de saber como eu faço pra baixar o SQL Server ou o MySql no meu note. Podes me ajudar publicando um passo a passo?
Oi Flávio.
Olha esse site e usa o WAMP. Ele é composto pelo Apache, PHP, MySQL e MariaDB. Tem o passo a passo no site deles também. http://www.wampserver.com/en/
parabéns!
Amei!
Estou entrando nessa área e mim sinto encantada!
Obrigado por sua épica explicação 😉
parabens,cara