Query String

Als Query String (Abfrage-Zeichenkette) wird der Teil eines URL-Pfades bezeichnet, mit dessen Hilfe man Informationen an und von Websites aus übermitteln kann. Zu diesem Zweck werden Daten in Parameter übersetzt und an die eigentliche URL angehängt. Die Website kann dann die im Query String enthaltenen Daten erfassen. Query Strings (Deutsch auch: Query-Komponenten) können vom Browser an eine URL angehängt werden oder auch von anderen Client-Anwendungen, zum Beispiel von HTML-Formularen. Es ist auch möglich, mehrere Query Strings in eine URL zu integrieren. Dabei folgt ein Query String einer ganz klaren Syntax und kann sowohl in JavaScript, als auch in PHP kodiert werden.

Syntax, Eigenschaften und Anwendung[Bearbeiten]

Die Query-Komponente in einer URL wird immer von einem Fragezeichen eingeleitet. Im Beispiel

https://de.ryte.com/wiki/Spezial:Suche?search=query+string

wird also nur der Parameter-String

?search=query+string

als tatsächlicher Query String definiert. Das Ende eines Query Strings wird durch entweder das Ende des URI oder durch ein „#“ markiert. Die Query-Komponente dient gemeinsam mit der Pfad-Komponente dazu, eine Ressource innerhalb des URI zu identifizieren[1]

Anders als URL-Parameter, die durch ein Semikolon gekennzeichnet sind, befindet sich ein Query String niemals innerhalb des URL-Pfades, sondern stets dahinter. Einige Eigenschaften teilen sich beide Komponenten jedoch: Sowohl URL-Parameter, als auch Query Strings enthalten Schlüssel-Werte-Paare. Und beide Komponenten sind im sogenannten Schema-spezifischen Teil der URL integriert.

Den meisten URLs liegt die gleiche generelle Syntax zugrunde, die aus den folgenden neun Teilen besteht:

<scheme>://<username>:<password>@<host>:<port>/<path>;<parameters>?<query>#<fragment>

Obligatorisch sind dabei nur das Schema, der Host und der Pfad. Alle darauf folgenden Bestandteile sind bedarfsorientiert und variable kombinierbar. Nur selten umfassen URLs überhaupt alle 9 Komponenten und gerade URL-Parameter werden in der Praxis mit am seltensten gebraucht. Anders verhält es sich bei Query- und Fragment-Parametern.

Query Strings in URLs sind sehr verbreitet, weil sich damit sehr einfach Informationen an einen Server übermitteln lassen. Dabei trennt das ? die Schlüssel-Werte-Paare aus dem String vom Rest der URL ab. Mehrere solcher Paare bzw. Query Strings werden indes durch ein & separiert. Es ist zwar möglich, anstatt des & ein Semikolon zu verwenden. Weil dieses Zeichen aber üblicher Weise zur Abgrenzung des Pfades von Parametern benutzt wird, hat sich das & bei der Query-String-Gestaltung weitestgehend durchgesetzt. So können im E-Commerce etwa in Shops Produkte nach bestimmten Charakteristika gefiltert werden.

https://irgendein-onlineshop.de/produktübersicht/kategorie/produktauswahl/?farbe=schwarz&brand=Markenname1,Markenname2,Markenname3&groesse=Groessenangabe
https://einanderer-webshop.de/übersicht.html?product-type=Produktname&color=Farbe1,Farbe2

Query Strings, besonders im E-Commerce-Bereich, können ganz individuell gestaltet werden, um eine höchstmögliche Usability zu ermöglichen. Etwa, wenn Produkte nicht nur nach Farbe und Größe sortiert werden können, sondern auch nach Design-Merkmalen und Materialien.

Aber Query Strings kommen nicht nur bei Webshops zum Einsatz, sondern auch bei anderen Anwendungen, wie Kontaktformularen, Online-Umfrage-Formulare (Surveys), zum Debugging und Bilder-Rendering.[2]

Query Strings und SEO[Bearbeiten]

Während Query Strings, wie auch andere URL-Komponenten, die User Experience verbessern können, können sie bei der Suchmaschinenoptimierung Probleme verursachen. Solchen durch Query Strings und andere URL-Parameter verursachten Fehlern kann man mit Maßnahmen wie Canonical Tags, Query-Komponenten-relevanten Befehlen in der Robot.txt-Datei oder mit Hilfe des URL-Parameter-Tools in der Google Search Console entgegenwirken.

Query String Problem Duplicate Content[Bearbeiten]

Werden mit Hilfe von Query Strings Filter in Online-Shops generiert, entstehen zusätzliche URLs, die Google und Co. allerdings keinen Mehrwert bieten. Wird durch Filter etwa nur das Angebot anders sortiert, wird der Content der Website lediglich reduziert dargestellt. Er ändert sich aber nicht wirklich. Das könnte die Performance einer Shopseite verringern. Nur wenn der Textanteil sich im Zuge der Filternutzung ändert, wird Google die gefilterten Seiten unter Umständen als Duplicate Content werten und schlechtestenfalls abstrafen.

Query String Problem Keyword Kannibalismus[Bearbeiten]

Keyword Kannibalismus tritt dann auf, wenn mehrere Unterseiten einer Domain auf das gleiche oder ein ähnliches Keyword optimiert sind. URL-Parameter, darunter auch Query Strings, können den organischen Trafficfluss einschränken, wenn die Suchmaschine nicht weiß, welche Seite für welches Keyword mit welcher Gewichtung ranken soll.

Query String und Sicherheit[Bearbeiten]

Mittels eines Query Strings lassen sich auch Passwörter oder andere sensible Daten, die unter die DSGVO fallen, übermitteln. So eine URL könnte wie folgt aussehen:

https://www.beispieldomain.de/?password=meinpasswort

Was auf Netzwerkebene noch kein Problem darstellt, kann schnell sicherheitsrelevant werden, wenn URLs in Webserver-Logs oder im Browserverlauf gespeichert werden oder durch den Einsatz von JavaScript oder Analytics-Diensten in Referrer-Header übermittelt werden.

Query-Komponenten können mit sicheren HTTPS-Seiten angewendet werden, sollten aus Sicherheitsgründen aber nicht dort eingesetzt werden, wo sie ein Datenschutz- oder Sicherheitsproblem darstellen können; etwa bei Passworteingaben oder Kreditkartendaten-Übermittlungen.

Einzelnachweise[Bearbeiten]

  1. URI Standards IETF Tools. Abgerufen am 10.06.2020
  2. Query Strings Kibo eCommerce Documentation. Abgerufen am 10.06.2020

Weblinks[Bearbeiten]