Eine Abfragezeichenfolge ist Teil einer URL (Uniform Resource Locator), die angegebenen Parametern Werte zuweist.
Eine Abfragezeichenfolge enthält in der Regel Felder, die einer Basis-URL von einem Webbrowser oder einer anderen Clientanwendung hinzugefügt wurden, z. B. als Teil eines HTML-Textes, beim Auswählen des Erscheinungsbilds einer Seite oder beim Springen zu Positionen in Multimediainhalten.
Ein Webserver kann eine HTTP-Anforderung (Hypertext Transfer Protocol) verarbeiten, indem er entweder eine Datei aus seinem Dateisystem basierend auf dem URL-Pfad liest oder die Anforderung mit einer Logik verarbeitet, die für den Ressourcentyp spezifisch ist.
In Fällen, in denen spezielle Logik aufgerufen wird, steht die Abfragezeichenfolge dieser Logik zur Verwendung bei der Verarbeitung zur Verfügung, zusammen mit der Pfadkomponente der URL.
Struktur
Eine typische URL, die eine Abfragezeichenfolge enthält, lautet wie folgt:
https://example.com/over/there?name=ferret
Wenn ein Server eine Anfrage für eine solche Seite erhält, kann er ein Programm ausführen und die Abfragezeichenfolge, die in diesem Fall “name=ferret” ist, unverändert an das Programm übergeben.
Das Fragezeichen wird als Trennzeichen verwendet und ist nicht Teil der Abfragezeichenfolge. Webframeworks können Methoden zum Analysieren mehrerer Parameter in der Abfragezeichenfolge bereitstellen, die durch ein Trennzeichen getrennt sind. In der folgenden Beispiel-URL werden mehrere Abfrageparameter durch das kaufmännische Und-Zeichen “&” getrennt:
https://example.com/path/to/page?name=ferret&color=purple
Die genaue Struktur der Abfragezeichenfolge ist nicht standardisiert.
Die Methoden, die zum Analysieren der Abfragezeichenfolge verwendet werden, können sich je nach Website unterscheiden.
Ein Link auf einer Webseite kann eine URL haben, die eine Abfragezeichenfolge enthält.
HTML definiert drei Möglichkeiten, wie ein Benutzeragent die Abfragezeichenfolge generieren kann:
- ein HTML-Formular über das
<form>...</form>
Element - eine serverseitige Imagemap über das
ismap
Attribut auf dem<img>
Element mit einer<img ismap>
Konstruktion - eine indizierte Suche über das inzwischen veraltete
<isindex>
Element
URL-Kodierung
Einige Zeichen dürfen nicht Teil einer URL sein (z. B. das Leerzeichen), und einige andere Zeichen haben eine besondere Bedeutung in einer URL: Zum Beispiel kann das Zeichen “#” verwendet werden, um einen Unterabschnitt (oder ein Fragment) eines Dokuments weiter zu spezifizieren.
In HTML-Formularen wird das Zeichen “=” verwendet, um einen Namen von einem Wert zu trennen.
Die generische URI-Syntax verwendet die URL-Codierung, um dieses Problem zu lösen, während HTML-Formulare einige zusätzliche Ersetzungen vornehmen, anstatt die prozentuale Codierung für alle diese Zeichen anzuwenden.
LEERZEICHEN ist als ‘+’ oder ‘%20’ codiert. HTML 5 gibt die folgende Transformation für das Senden von HTML-Formularen mit der Methode “GET” an einen Webserver an. Im Folgenden finden Sie eine kurze Zusammenfassung des Algorithmus:
- Zeichen, die nicht in den richtigen Zeichensatz konvertiert werden können, werden durch numerische HTML-Zeichenreferenzen ersetzt
- LEERZEICHEN ist als ‘+’ oder ‘%20’ codiert
- Die Buchstaben (A–Z und a–z), Zahlen (0–9) und die Zeichen ‘~’,’-‘,’.’ und ‘_’ werden unverändert belassen
- ‘+’ wird von %2B codiert
- Alle anderen Zeichen werden als hexadezimale ‘%HH’-Darstellung codiert, wobei alle Nicht-ASCII-Zeichen zuerst als UTF-8 (oder eine andere angegebene Codierung) codiert werden
Das Oktett, das der Tilde (“~”) entspricht, ist in Abfragezeichenfolgen von RFC3986 zulässig, muss aber in HTML-Formularen in “%7E” prozentual codiert werden.
Die Kodierung von SPACE als ‘+’ und die Auswahl von “as-is”-Zeichen unterscheidet diese Kodierung von RFC 3986.
Beispiel
Wenn ein Formular wie folgt in eine HTML-Seite eingebettet ist:
<form action="/cgi-bin/test.cgi" method="get">
<input type="text" name="first" />
<input type="text" name="second" />
<input type="submit" />
</form>
und der Benutzer die Zeichenfolgen “Dies ist ein Feld” und “War es (bereits)?” in die beiden Textfelder einfügt und die Schaltfläche Senden drückt, erhält das Programm “test.cgi” (das Programm, das im obigen Beispiel durch das Attribut “action” des Elements “form” angegeben wird) die folgende Abfragezeichenfolge: first=this+is+a+field&second=was+it+clear+%28already%29%3F
.
Wenn das Formular auf dem Server von einem CGI-Skript verarbeitet wird, empfängt das Skript die Abfragezeichenfolge in der Regel als Umgebungsvariable mit dem Namen “QUERY_STRING”. Quelle: Query string, https://en.wikipedia.org/wiki/Query_string [Abgerufen am 18 . November 2021]