Qual é a diferença entre HTTP GET e HTTP POST?

Quando você envia um formulário, um dos dois métodos é usado nos bastidores para transmitir dados desse formulário para qualquer página da Web ou código projetado para lê-lo. Dependendo das circunstâncias, o método pode ser GET ou POST. Ambos podem ser usados ​​para manipular o mesmo tipo de dados, mas existem diferenças claras e importantes entre GET e POST. Por razões práticas, facilidade de uso e segurança, qualquer situação específica geralmente requer um tipo específico de solicitação de formulário.

GET vs. POST

A rigor, a diferença entre GET e POST está na maneira como as aplicações são transferidas. As informações em GET são transmitidas no URL. Se você já viu um URL que inclui pontos de interrogação e símbolos de união, estava procurando uma solicitação GET: example.com/request.php?var1=foo&var2=bar é uma string GET que codifica a variável “var1” como “foo” e a variável “var2” como “bar”. As informações do POST estão incluídas no corpo da solicitação e não são visíveis na cadeia de caracteres da URL (e, portanto, não são visíveis ao usuário).

Diretrizes formais

Formalmente, as diretrizes HTML dizem que GET deve ser usado para solicitações “idempotentes” ou solicitações que não mudam nada. Por exemplo, imagine uma página da Web que retorne o clima local: “example.com/weather.php?zipcode=12345”. O ato de enviar essa solicitação repetidamente não muda nada. O POST deve ser usado para solicitações que não são idempotentes. Por exemplo, suponha que você estava fazendo uma compra com seu cartão de crédito. A apresentação repetida dessa petição pode levar a mudanças muito grandes. Como o reenvio de uma solicitação POST tem consequências (mesmo que menores), os navegadores da Web geralmente fazem uma solicitação para que o usuário confirme que realmente deseja reenviar o formulário de consulta.

Vantagens GET

GET tem várias vantagens sobre o POST. Como GET é codificado como parte de um URL, você pode recortar e colar o URL e compartilhá-lo com outras pessoas. Solicitações GET também podem ser marcadas. Se você verificar periodicamente o clima, poderá adicionar “example.com/weather.php?zipcode=12345” à barra “Favoritos” do seu navegador. Ao clicar nesse link, a página do clima personalizada será carregada automaticamente. Como as solicitações GET são visíveis (e editáveis) pelo usuário, elas também podem ser invadidas. Por exemplo, se o site meteorológico não oferecer uma maneira óbvia de alterar o local da solicitação de horário, você poderá alterar manualmente “12345” para “99762” para observar o clima em Nome, no Alasca, em vez do clima em Schenectady.

Quando usar o POST

Mesmo em situações idempotentes, o POST tem usos claros ocasionais. Alguns deles são baseados em segurança ou legalidade. As variáveis ​​GET são transmitidas “de forma clara”, pois você não deseja enviar informações de cartão de crédito, números de previdência social, senhas ou informações confidenciais do usuário através do GET. Como os dados do POST ficam mais escuros, é preferível nessas situações. O POST também é usado para a transmissão de grandes quantidades de dados, mesmo que os dados não sejam sensíveis. Tecnicamente, os URLs (e, portanto, as variáveis ​​GET) podem ter tamanho ilimitado. No entanto, como muitos navegadores limitam a quantidade de espaço que um URL pode ter, o GET geralmente é considerado adequado apenas para solicitações relativamente curtas.

Referências

 

Você pode estar interessado:

Deixe um comentário