Mine sisu juurde

Päringusõne

Allikas: Vikipeedia
Aadressiriba brauseris Google Chrome, kus on näha URL päringusõnega title=Araali_meri&action=edit

Päringusõne (inglise keeles query string) on osa internetiaadressist, mis määrab etteantud parameetrite väärtused. Päringusõne koosneb tavaliselt domeeninimele lisatavatest väljadest, mille on seadnud kas veebibrauser või mõni muu klientrakendus, näiteks HTML vormi kaudu.[1]

Veebiserver võib HTTP-päringut käsitseda kahel moel. Esimene võimalus on failisüsteemist etteantud aadressi järgi faili lugemine. Teine võimalus on, et kasutatakse domeeniloogikat, mis on antud ressursitüübile omane. Viimasel juhul on päringusõne koos URLi failitee osaga domeeniloogikale töötlemiseks kättesaadav.[2]

Näide internetiaadressist, mis sisaldab päringusõnet:

https://www.eesti.ee/et/otsing/?q=haigekassa

Kui server saab päringu sellisele lehele, käivitatakse programm, millele antakse kaasa päringusõne, milleks on antud juhul q=haigekassa. Küsimärk täidab eraldaja rolli ning ei ole osa päringusõnest.[3][4]

Näide internetiaadressist, kus mitu päringu parameetrit on eraldatud ampersandiga &:

https://www.eesti.ee/portaal/!portaal.otsi_tulemus?sona=haigekassa&t=teenused

Päringute järjekord ei ole oluline – sona=haigekassa&t=teenused ja t=teenused&sona=haigekassa annavad mõlemad sama tulemuse. Päringusõnede parsimisel kasutatavad meetodid võivad leheküljeti erineda.[5]

Veebilehel oleval lingil võib olla aadress, mis sisaldab päringusõnet. HTML on defineerinud 3 võimalust, kuidas kasutajaagent saab päringusõnet genereerida:

  • HTML-vorm, kasutades <form>...</form> elementi,[6]
  • serveripoolne kujutiskaart, kasutades ismap atribuuti <img ismap> konstruktsiooniga <img> elemendil,[7]
  • indekseeritud otsimine, kasutades nüüdseks vananenud <isindex> elementi.[8]

Internetiaadressi kodeerimine

[muuda | muuda lähteteksti]

Mõned sümbolid ei tohi veebilehe aadressis esineda (näiteks tühikud) ning mõnel sümbolil on aadressis eriline tähendus – näiteks # viitab dokumendis olevale fragmendile. HTML vormides kasutatakse sümbolit = nimede ja väärtuste eraldamiseks. HTML vormid lahendavad probleemi täiendavaid asendusi tehes.[9]

HTML 5 määrab järgmised asendused HTML vormide saatmiseks veebiserveri GET meetodiga.[1] Lühikokkuvõte algoritmist:

  • sümbolid, mida ei saa teisendada õigesse tähestikku, asendatakse HTMLi numbriliste karakteriviidetega,[10]
  • tühik on kodeeritult + või %20,[9]
  • tähed (A-Z ja a-z), numbrid (0-9) ja sümbolid *, -, . ning _ jäetakse algsele kujule,[11]
  • + on kodeeritult %2B.[9]

Kõik muud sümbolid esitatakse kuueteistkümnendsüsteemis, kusjuures mitte-ASCII sümbolid kodeeritakse esmalt UTF-8 või muusse etteantud kodeeringusse.[10]

Tilde (~) on RFC3986 poolt päringusõnedes lubatud, kuid HTML vormides nõutakse selle kodeerimist kujule %7E.[2][12]

Kui HTML dokument sisaldab järgmist vormi:

<form action="cgi-bin/test.cgi" method="get">
  <input type="text" name="esimene" />
  <input type="text" name="teine" />
  <input type="submit" value="Sisesta" />
</form>

ning kasutaja sisestab tekstiväljadesse sõned „see on väli“ ning „oli (juba) tühi?“ ja vajutab „Sisesta“ nuppu, saadetakse programmile test.cgi (määratud näites elemendi form atribuudi action poolt) järgnev päringusõne: esimene=see+on+v%C3%A4li&teine=oli+%28juba%29+t%C3%BChi%3F.[9][6]

  1. 1,0 1,1 "HTML 5.2 W3C recommendations". W3C. 14.12.2017. Vaadatud 21.11.2018.
  2. 2,0 2,1 "HTTP (HyperText Transfer Protocol)". www.ntu.edu.sg. 20.10.2009. Originaali arhiivikoopia seisuga 27.11.2018. Vaadatud 21.11.2018.
  3. T. Berners-Lee, R.Fielding, L. Masinter (jaanuar 2005). "RFC 3986". Ptk 3. Vaadatud 04.11.2018.{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link)
  4. T. Berners-Lee, R. Fielding, L. Masinter (jaanuar 2005). "RFC 3986". Ptk 3.4. Vaadatud 04.11.2018.{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link)
  5. J. Jackson. Web Technologies – A Computer Science Perspective, Pearson, 2007, lk 314–315.
  6. 6,0 6,1 "HTML <form> method Attribute". W3Schools. Vaadatud 20.11.2018.
  7. "HTML <img> ismap Attribute". W3Schools. Vaadatud 21.11.2018.
  8. "HTML <isindex> Tag". W3docs. Vaadatud 21.11.2018.
  9. 9,0 9,1 9,2 9,3 "HTML URL Encoding Reference". W3Schools. Vaadatud 21.11.2018.
  10. 10,0 10,1 "HTML 5.2 W3C recommendation". W3C. 14.12.2017. Vaadatud 21.11.2018.
  11. T. Berners-Lee, L. Masinter, M. McCahill (detsember 1994). "RFC 1738". Lk 4. Vaadatud 21.11.2018.{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link)
  12. T. Berners-Lee, R.Fielding, L. Masinter (jaanuar 2005). "RFC 3986". Ptk 2.4. Vaadatud 20.11.2018.{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link)