As solicitações POST nem sempre atendem a esses critérios. Mas as solicitações QUERY sim. A entrada para a operação QUERY é, como POST, passada como o conteúdo da solicitação, e não como parte do URI da solicitação, como acontece com GET. Ao contrário do POST, QUERY permite que funções como cache e novas tentativas automáticas operem, justamente por ser seguro e idempotente.
Somente leitura disfarçado
“O RFC 10008 é importante porque dá à solução alternativa favorita da web uma identidade de protocolo”, disse Sanchit Vir Gogia, analista-chefe da Greyhound Research. “Os desenvolvedores disfarçaram perguntas somente leitura como comandos POST por duas décadas; QUERY carrega a pergunta no corpo da solicitação enquanto declara que é seguro tentar novamente e armazenar em cache. O significado é a intenção legível por máquina; mecanismos de repetição, caches e agentes autônomos agem de acordo com o que um método declara, não com base no que a documentação pretende. Sob automação, a semântica se torna política.”
“GET funciona enquanto uma solicitação cabe confortavelmente em um URI e para de funcionar no momento em que um desenvolvedor precisa de filtros profundos, conjuntos de identificadores longos ou um documento de consulta inteiro”, explicou Gogia. “Os URIs também atraem exposição por meio de históricos, marcadores e registros de acesso, e a codificação de cada combinação de entrada no endereço transforma silenciosamente cada permutação em um recurso distinto.”
