GET

GET je v informatice jedna z dotazovacích metod HTTP protokolu, kterou webový prohlížeč (klient) získává webovou stránku (nebo jiný objekt – například obrázek) z webového serveru. Označuje též jednu z dvou metod předávání metaproměnných z webového formuláře na webový server, kde mohou být informace zpracovány (například PHP skriptem). Alternativní metodou je POST.

Dotazovací metoda GET

Metoda GET využívá URI dokumentu, který pro HTTP jednoznačně identifikuje jednotlivé objekty na WWW serverech (lidově „na Internetu“). Používají ji webové prohlížeče, když získávají webové stránky nebo jejich součásti. Ručně lze tento postup snadno ukázat na získání tohoto článku Wikipedie z příkazového řádku (např. v Linuxu). V příkladu je použito URI tohoto článku s adresou http://cs.wikipedia.org/wiki/GET:

telnet cs.wikipedia.org 80
GET /wiki/GET HTTP/1.0
zde stisknout Enter

URI objektu nesmí obsahovat speciální znaky, které proto musí být zakódovány (escapovány) (například znak mezery za %20 nebo +).

Předávání metaproměnných

Proměnné z formuláře se předávají pomocí kódování do URI dokumenty za znakem otazník, například v následujícím URI je získána historie tohoto článku:

http://cs.wikipedia.org/w/index.php?title=GET&action=history

V tomto případě jsou předány dvě metaproměnné: title a action. Lze předávat více metaproměnných. Název je od hodnoty oddělen rovnítkem, jednotlivé dvojice název=hodnota jsou pak odděleny znakem ampersandu. Takto je možné předat pouze omezené množství dat, neboť maximální délka URI v požadavku GET je 512 bajtů (byť většina prohlížečů podporuje i delší URI).[zdroj?] Předané metaproměnné se zpracovávají na straně webového serveru.

Metody GET a POST

Metoda GET by se měla používat pouze pro statické objekty (webové stránky), které se v čase mění málo.[1] Předávání metaproměnných z webových formulářů může u metody GET uživatel snadno změnit jejich obsah jednoduchou modifikací použitého URI. URI je také ukládáno do historie stránek webového prohlížeče nebo do logovacího souboru webového serveru. Proto by se předávání metaproměnných z webových formulářů pomocí metody GET nemělo používat na citlivá data (například hesla). Je obvyklé, že se data získaná metodou GET cachují, přičemž cachování lze dále ovlivnit pomocí hlavičky dotazu, který obsahuje položky If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match nebo If-Range.

Data, která na straně serveru způsobí nějakou akci (například změnu v databázi), by měla být z výše uvedených důvodů předávána pomocí metody POST.

Reference

  1. http://www.w3.org/DesignIssues/Axioms.html#state – Univeral Resource Identifiers -- Axioms of Web architecture

Související články

Externí odkazy