Frågesträng
Den frågan komponent , ofta frågesträng ( engelska för frågesträngen ) är en del av en Uniform Resource Locator (URL) i World Wide Web och i RFC 3986 anges. Frågekomponenten innehåller data, ofta i form av namngivna parametrar , som kan skickas till en webbserver och utvärderas av nedströms serverdel i en webbapplikation .
konstruktion
En frågesträng börjar med ett frågetecken ( ?) och slutar med ett hashtecken ( #) eller slutet av URL: en. Den består ofta av en eller flera parametrar, ofta i form av nyckel-värdepar, som ofta separeras från varandra med ett ampersand ( &). Parameternamnet och värdet separeras av ett reserverat tecken , vanligtvis ett likhetstecken ( =). De angivna separatorerna motsvarar kraven i World Wide Web Consortium (W3C) för överföring av HTML -formulärdata .
Följande URL innehåller frågesträngen stichwort=wiki&ausgabe=liste:
http://www.example.org/suche?stichwort=wiki&ausgabe=liste
I detta fall parametern är stichwortvärdet wikioch ausgabeparametervärdet listetilldelas.
exempel
Ett webbformulär implementeras enligt följande:
<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="2019-11-27" />
<input type="submit" value="Suche starten" />
</form>
Notera det dolda ( type="hidden") fältet suchdatum. Det syns inte i webbläsaren, men blir en del av frågesträngen när formuläret skickas. Skicka -knappen däremot ingår inte i frågesträngen eftersom den inte har fått ett namn ( name). Om användaren anger sökordet "wiki" i textfältet och skickar in formuläret, stichwort=wiki&suchdatum=2019-11-27genereras till exempel följande webbadress med motsvarande söksträng :
http://<server>/suche.php?stichwort=wiki&suchdatum=2019-11-27
Utvärdering (i PHP)
Frågesträngen kan efterfrågas i PHP . Frågesträngens innehåll är tillgängligt som en array .
echo $_GET['stichwort'];
matar ut texten som angavs i sökfältet.
print_r($_GET);
resultat med exemplet ovan
Array
(
[stichwort] => wiki
[suchdatum] => 2019-11-27
)
Nackdelar och problem
Kodning
Vissa tecken får inte visas i en frågesträng, eftersom de annars kan tolkas felaktigt. Om exempelvis likhetstecknet används inom ett värde, identifieras detta felaktigt som en nyckel-värdeavgränsare. När frågesträngen genereras måste dessa tecken vara speciellt kodade - till exempel måste ett mellanslag +konverteras till ett plustecken ( ).
Separator för parametrar
Den et-tecken ( &) som en separator av nyckelvärdespar är problematiskt i HTML-dokument, eftersom denna karaktär måste särskilt kodad enligt World Wide Web Consortium (W3C). W3C rekommenderar därför att paren separeras med ett semikolon ( ;).
Säkerhetsrisker
Eftersom frågesträngen är en del av webbadressen kan den ses och ändras av varje Internetanvändare i webbläsaren . I en webbapplikation bör därför endast icke-kritiska parametrar infogas i frågesträngen, till exempel posten i ett sökfält.
Tekniska begränsningar
Om en större mängd data måste överföras är det lämpligt att inte överföra den via webbadressen, utan i meddelandetexten med HTTP -metoden POST , eftersom vissa begränsningar gäller för webbadresser:
- Av kompatibilitetsskäl rekommenderar HTTP -specifikationen en maximal storlek på 255 byte för webbadresser eller URI: er .
- Den Internet Explorer stöder inte webbadresser som består av mer än 2,083 tecken.
- Webbservrar kan själva begränsa den maximala längden på en frågesträng. Om denna gräns överskrids skickar servern HTTP -statuskoden 414 tillbaka till klienten.
- Den (under tiden föråldrade) HTML 3 -specifikationen föreskriver en maximal längd på länkmål på 1024 tecken. Denna begränsning gäller inte längre från HTML 4.
Se även
Individuella bevis
- ↑ T. Berners -Lee, R. Fielding, L. Masinter: RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax . [Fel: RFC 3986 ]. Januari 2005. Avsnitt 3.4: Fråga. Standard: [66]. (Ersätter RFC 2732 , RFC 2396 , RFC 1808 - Uppdaterad av RFC 6874 , RFC 7320 - engelska).
- ↑ 17 blanketter. 17.13.4 Forminnehållstyper. I: HTML 4.01 -specifikation. World Wide Web Consortium (W3C), 27 mars 2018, öppnade 27 november 2019 .
- ^ W3C-rekommendation för att separera nyckel-värdepar
- ↑ HTTP / 1.1 -specifikation
- ↑ http://support.microsoft.com/kb/208427
- ↑ HTML 3 -specifikation