Query String

Query String

Ein Query String ist ein Teil eines Uniform Resource Locator (URL) im World Wide Web. Diese Zeichenkette enthält benannte Parameter, die dann von der Webanwendung ausgewertet werden können.

Inhaltsverzeichnis

Aufbau

Diese URL enthält einen Query String: http://www.example.org/suche?stichwort=wiki&ausgabe=liste Der Query String dieses Beispiels lautet stichwort=wiki&ausgabe=liste, der Parameter stichwort enthält den Wert "wiki" und ausgabe enthält den Wert "liste". Innerhalb des Query Strings werden die Paramter-Werte-Paare (auch: Key-Value Pairs) mit einem kaufmännischen &-Zeichen getrennt. Die Paare selbst werden durch ein Gleichheitszeichen dissoziiert.

Übertragung

Die Übergabe der Parameter erfolgt über das HTTP-GET-Verfahren. So bildet sich beispielsweise ein Query String aus Parameter-Werte-Paaren, wenn ein Webformular abgesendet wurde, das als Übertragung "GET" benutzt. Ein anderes Verfahren zur Übertragung ist HTTP-POST, die Wertepaare sind in diesem Fall dann nicht Teil der URL bzw. des Query Strings.

Beispiel

Ein Webformular ist wie folgt konzipiert:

<form action="suche.php" method="get">
    <label for="stichwort">Suche nach</label>
    <input type="text" name="stichwort" id="stichwort" />
 
    <input type="hidden" name="suchdatum" value="2011-09-07" />
 
    <input type="submit" value="Suche starten" />
</form>

Zu beachten ist hierbei das hidden-Feld. Es ist für den Benutzer nicht sichtbar, wird beim Absenden des Formulares aber dennoch Teil des Query Strings. Der Submit-Button wird dagegen nicht Teil des Query Strings, da diesem keine Bezeichnung (name) zugewiesen wurde. Gibt der Benutzer in das Textfeld "wiki" ein und sendet das Formular ab, entsteht dieser Query String: http://server/suche.php?stichwort=wiki&suchdatum=2011-09-07

Auswertung (PHP)

In PHP lässt sich dieser Query String abfragen. Dabei ist der Inhalt des Query Strings als Array verfügbar.

echo $_GET['stichwort'];

gibt beispielsweise den Text aus, der in das Suchfeld eingetragen wurde.

print_r($_GET);

ergibt also

Array
(
    [stichwort] => wiki
    [suchdatum] => 2011-09-07
)

Nachteile und Probleme

Kodierung

Hauptartikel: URL-Encoding

Einige Zeichen dürfen nicht in einem Query String auftreten, da diese ansonsten fehlerhaft interpretiert werden können. Wird das Gleichheitszeichen beispielsweise innerhalb eines Wertes benutzt, wird dieses fälschlicherweise als Parameter-Werte-Trenner erkannt. Beim Generieren des Query Strings müssen diese Zeichen speziell codiert werden - das Leerzeichen würde dann in ein Pluszeichen (+) gewandelt werden.

Wertepaartrenner

Das Et-Zeichen als Parameter-Werte-Paar-Trenner ist in HTML-Dokumenten problematisch, da dieses Zeichen laut dem W3C speziell kodiert sein muss. Der W3C empfiehlt daher eine Trennung der Paare durch ein Semikolon [1]

Sicherheitsrisiken

Da der Query String Teil der URL ist, ist dieser auch für jeden Internetnutzer im Browser einsehbar und auch modifizierbar. Der Entwickler der Applikation sollte also nur ungefährliche Parameter in dem Query String verarbeiten, etwa die Eingabe in einem Suchfeld.

Technische Beschränkungen

Müssen größere Daten übergeben werden, empfiehlt sich diese via POST zu senden, da für das GET-Verfahren einige Beschränkungen gelten:

  • Die HTTP-Spezifikation empfiehlt aus Kompatibilitätsgründen eine Maximalgröße von 255 bytes der URLs bzw. URIs[2].
  • Der Internet Explorer unterstützt keine URLs, die aus mehr als 2048 Zeichen bestehen[3]
  • Webserver können die Maximallänge eines Query Strings selbst begrenzen. Bei einer Überschreitung dieser Grenze sendet der Server dann den Statuscode 414.
  • Die (mittlerweile veraltete) HTML 3-Spezifikation schreibt eine Maximallänge von Linkzielen von 1024 Zeichen vor[4]. Diese Beschränkung ist in HTML 4 und HTML 5 nicht mehr vorhanden.

Siehe auch

Einzelnachweise

  1. W3C-Empfehlung für das Trennen der Key-Value-Pairs
  2. HTTP/1.1-Spezifikation
  3. http://support.microsoft.com/kb/208427
  4. HTML 3-Spezifikation

Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Query string — Saltar a navegación, búsqueda Query string, cadena de consulta, este término generalmente se utiliza para hacer referencia a una interacción con una base de datos. Es la parte de una URL que contiene los datos que deben pasar a aplicaciones web… …   Wikipedia Español

  • Query string — In the World Wide Web, a query string is the part of a URL that contains data to be passed to web applications such as CGI programs.When a web page is requested via the Hypertext Transfer Protocol, the server locates a file in its file system… …   Wikipedia

  • Query by Example — (QBE) is a database query language for relational databases. It was devised by Moshè M. Zloof at IBM Research during the mid 1970s, in parallel to the development of SQL. It is the first graphical query language, using visual tables where the… …   Wikipedia

  • String (computer science) — In formal languages, which are used in mathematical logic and theoretical computer science, a string is a finite sequence of symbols that are chosen from a set or alphabet. In computer programming, a string is traditionally a sequence of… …   Wikipedia

  • Comparison of programming languages (string functions) — String functions redirects here. For string functions in formal language theory, see String operations. Programming language comparisons General comparison Basic syntax Basic instructions Arrays …   Wikipedia

  • Java Persistence Query Language — Испытал влияние: SQL Java Persistence Query Language (JPQL)  платформо независимый объектно ориентированный язык запросов являющийся частью Java Persistence API спецификации. JPQL используется для написания запросов к сущностям, хранящимся в …   Википедия

  • Language Integrated Query — LINQ redirects here. For the card game, see Linq (card game). Language Integrated Query Influenced by SQL, Haskell Language Integrated Query (LINQ, pronounced link ) is a Microsoft .NET Framework component that adds native data querying… …   Wikipedia

  • Stanford String Quartet — The Stanford String Quartet was formed in 1984 as a special project of the Stanford University Department of Music. PersonnelFaculty member and violinist Andor Toth became the first violinist. He was joined by Stanford faculty members [http://www …   Wikipedia

  • New England String Ensemble — was founded in 1993 by violinist Peter Stickel and cellist John Bumstead to champion strings in performance and education and is one of the country’s leading professional string orchestras.[citation needed] The ensemble consists of 26… …   Wikipedia

  • Fuzzy string searching — Approximate string search is the name that is used for a category of techniques for finding strings that approximately match some given pattern string. It may also be known as approximate or inexact matching. Approximate string searching has two… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”