Monday, July 31, 2017

GET e POST são dois tipos diferentes de pedido HTTP


De acordo com a Wikipedia:
Com modificações minhas.

GET solicita uma representação do recurso especificado. Observe que o GET não deve ser usado para operações que causam efeitos colaterais, como usá-lo para tomar ações em aplicativos da Web. Um dos motivos para isso é que o GET pode ser usado arbitrariamente por robôs/robots ou rastreadores/crawlers, o que não deve considerar os efeitos colaterais que um pedido deve causar.


POST envia dados a serem processados ​​(por exemplo, de um formulário HTML) ao recurso identificado. Os dados estão incluídos no corpo da solicitação. Isso pode resultar na criação de um novo recurso ou nas atualizações dos recursos existentes ou de ambos.
Então, essencialmente GET é usado para recuperar/salvar/manter dados remotos, e o POST é usado para inserir / atualizar dados remotos.
________________________________________
Especificação HTTP / 1.1 (RFC 2616) seção 9 Definições do método contém mais informações sobre GET e POST, bem como sobre os outros métodos HTTP. Além de explicar os usos pretendidos de cada método, a especificação também fornece pelo menos uma razão prática para o que o GET deve ser usado apenas para recuperar dados:
Autores de serviços que utilizam o protocolo HTTP NÃO DEVEM usar formulários baseados em GET para a submissão de dados sensíveis, pois isso fará com que esses dados sejam codificados no Request-URI. Muitos servidores, proxies e agentes de usuários existentes registrarão o URI de solicitação em algum lugar onde ele possa ser visível para terceiros. Os servidores podem usar a submissão de formulários com base em POST para manter a segurança.
________________________________________
Finalmente, uma consideração importante ao usar as solicitações GET para AJAX é que alguns navegadores - IE em particular - armazenarão em cache os resultados de um pedido GET. Então, se você, por exemplo, pesquisando usando a mesma solicitação GET, você sempre recuperará os mesmos resultados, mesmo se os dados que você está consultando estiverem sendo atualizados lado a lado do servidor. Uma maneira de aliviar esse problema é tornar o URL único para cada solicitação anexando um carimbo de data / hora.

APIs - REST API