Ich sehe keinen großen Unterschied zwischen den Parametern und den Abfragezeichenfolgen in der URL. Was ist der Unterschied und wann sollte eines über das andere angewendet werden?
url
query-string
url-parameters
Konst
quelle
quelle
Antworten:
Die Abfragekomponente wird durch die erste
?
in einem URI angezeigt . "Abfragezeichenfolge" kann ein Synonym sein (dieser Begriff wird im URI-Standard nicht verwendet).Einige Beispiele für HTTP-URIs mit Abfragekomponenten:
( Liste der zulässigen Zeichen in der Abfragekomponente )
Das "Format" der Abfragekomponente liegt bei den URI-Autoren. Eine übliche Konvention ( aber nichts weiter als eine Konvention, was den URI-Standard betrifft ¹) ist die Verwendung der Abfragekomponente für Schlüssel-Wert-Paare, auch bekannt als. Parameter , wie im letzten Beispiel oben :
bar1=a&bar2=b
.Solche Parameter könnten auch in den anderen URI-Komponenten auftreten, dh im Pfad² und im Fragment. In Bezug auf den URI-Standard liegt es an Ihnen, welche Komponente und welches Format verwendet werden soll.
Beispiel-URI mit Parametern im Pfad, in der Abfrage und im Fragment:
¹ Der URI-Standard sagt über die Abfragekomponente :
² Der URI-Standard sagt über die Pfadkomponente :
quelle
Parameter sind Schlüssel-Wert-Paare, die im URL-Pfad angezeigt werden können und mit einem Semikolon (
;
) beginnen.Die Abfragezeichenfolge wird nach dem Pfad angezeigt (falls vorhanden) und beginnt mit einem Fragezeichen (
?
).Sowohl Parameter als auch Abfragezeichenfolge enthalten Schlüssel-Wert-Paare.
In einer
GET
Anfrage werden Parameter in der URL selbst angezeigt:In einer
POST
Anfrage können Parameter in der URL selbst, aber auch im Datenstrom (als Inhalt bezeichnet) angezeigt werden.Die Abfragezeichenfolge ist immer Teil der URL.
Parameter können
form-data
bei Verwendung der POST-Methode im Datenstrom vergraben werden, sodass sie möglicherweise nicht in der URL angezeigt werden. Ja, einePOST
Anforderung kann Parameter als Formulardaten und in der URL definieren. Dies ist nicht inkonsistent, da Parameter mehrere Werte haben können.Ich habe bisher keine Erklärung für dieses Verhalten gefunden. Ich denke, es kann manchmal nützlich sein, Parameter aus einer
POST
Anfrage "einzublenden" oder sogar den Code, der eineGET
Anfrage verarbeitet, einige Teile mit dem Code teilen zu lassen, der a verarbeitetPOST
. Dies kann natürlich nur mit Servercode funktionieren, der Parameter in einer URL unterstützt.Bis Sie bessere Einblicke erhalten, empfehle ich Ihnen, Parameter nur im
form-data
Datenstrom vonPOST
Anforderungen zu verwenden.Quellen:
Was jeder Entwickler über URLs wissen sollte
RFC 3986
quelle