Não vejo muita diferença entre os parâmetros e as strings de consulta no URL. Então, qual é a diferença e quando um deve ser usado em vez do outro?
url
query-string
url-parameters
Konst
fonte
fonte
Respostas:
O componente de consulta é indicado pelo primeiro
?
em um URI. "Query string" pode ser um sinônimo (este termo não é usado no padrão URI).Alguns exemplos de URIs HTTP com componentes de consulta:
( lista de caracteres permitidos no componente de consulta )
O "formato" do componente de consulta fica por conta dos autores do URI. Uma convenção comum ( mas nada mais que uma convenção, no que diz respeito ao padrão URI ¹) é usar o componente de consulta para pares chave-valor, também conhecido como. parâmetros , como no último exemplo acima:
bar1=a&bar2=b
.Esses parâmetros também podem aparecer nos outros componentes do URI, ou seja, o caminho² e o fragmento. No que diz respeito ao padrão URI, cabe a você qual componente e qual formato usar.
URI de exemplo com parâmetros no caminho, a consulta e o fragmento:
¹ O padrão URI diz sobre o componente de consulta :
² O padrão URI diz sobre o componente do caminho :
fonte
Os parâmetros são pares de valores-chave que podem aparecer dentro do caminho do URL e começam com um ponto e vírgula (
;
).A string de consulta aparece após o caminho (se houver) e começa com um caractere de ponto de interrogação (
?
).Os parâmetros e a string de consulta contêm pares de valores-chave.
Em uma
GET
solicitação, os parâmetros aparecem no próprio URL:Em uma
POST
solicitação, os parâmetros podem aparecer na própria URL, mas também no fluxo de dados (conhecido como conteúdo).A string de consulta sempre faz parte do URL.
Os parâmetros podem ser enterrados no
form-data
fluxo de dados ao usar o método POST para que eles não apareçam no URL. Sim, umaPOST
solicitação pode definir parâmetros como dados do formulário e na URL, e isso não é inconsistente porque os parâmetros podem ter vários valores.Não encontrei explicação para esse comportamento até agora. Acho que às vezes pode ser útil "mostrar" os parâmetros de uma
POST
solicitação ou até mesmo deixar o código que manipula umaGET
solicitação compartilhar algumas partes com o código que trata aPOST
. É claro que isso pode funcionar apenas com o código do servidor que oferece suporte a parâmetros em uma URL.Até obter melhores insights, sugiro que você use parâmetros apenas no
form-data
fluxo de dados dePOST
solicitações.Fontes:
O que todo desenvolvedor deve saber sobre URLs
RFC 3986
fonte