GET e POST são dois dos métodos HTTP mais utilizados.
Eles possuem significado e propósitos completamente diferentes.
Guia do artigo:
GET
É usado para obter algum recurso hospedado no servidor.
Por exemplo, se desejamos visualizar a home de um site enviamos a seguinte requisição:
GET / HTTP/1.1
Host: www.devmedia.com.br
...
Também utilizamos o GET quando os dados necessários para que o recurso correto seja encontrado devem permanecer na URL.
Por exemplo, após disparar uma busca o termo procurado pode permanecer na URL, permitindo que a página seja atualizada, mas exibida da mesma forma.
GET /busca/?txtsearch=http+verbo HTTP/1.1
Host: www.devmedia.com.br
...
Essa parte ?txtsearch=http+verbo, que vemos acima se chama Query String e contém pares de chave/valor, enviados para o servidor junto da requisição.
Note que devemos ter cuidado ao adicionar dados na URL, pois há uma limitação de tamanho. Além disso, essa informação está exposta, sendo aconselhável que não seja uma senha, número de cartão de crédito, etc.
POST
É utilizado para enviar dados para o servidor.
Geralmente usamos esse método para criar algo no servidor. Em alguns casos também usamos POST para atualizar alguma informação no servidor.
Os dados enviados com o POST são armazenados no corpo da requisição HTTP.
POST /cadastro.php HTTP/1.1
Host: www.devmedia.com.br
nome=Estevao&sobrenome=Dias...
Os dados enviados por POST ficam ocultos e nunca são armazenados no navegador sem a permissão do usuário.
Diferente de GET, POST não restringe o tamanho dos dados enviados.