GET
Metoda HTTP
Specifikace metody HTTP GET
Metoda GET požaduje přenos aktuální vybrané reprezentace cílového prostředku. GET je primárním mechanismem získávání informací a je předmětem téměř všech výkonnostních optimalizací. Proto když se hovoří o získávání nějakých identifikovatelných informací prostřednictvím protokolu HTTP, má se zpravidla na mysli provedení požadavku GET.
Je lákavé uvažovat o identifikátorech zdrojů jako o vzdálených cestách k souborovému systému a o reprezentacích jako o kopiích obsahu těchto souborů. Ve skutečnosti je takto implementováno mnoho prostředků (viz část 9.1 o souvisejících bezpečnostních úvahách). V praxi však taková omezení neexistují. Rozhraní HTTP pro zdroj je stejně pravděpodobně implementováno jako strom objektů obsahu, programový pohled na různé záznamy v databázi nebo brána do jiných informačních systémů. Dokonce i v případě, že je mechanismus mapování URI vázán na souborový systém, může být server původu nakonfigurován tak, že soubory s požadavkem provede jako vstup a výstup odešle jako reprezentaci, nikoliv že soubory přenese přímo. Bez ohledu na to musí pouze server původu vědět, jak každý z jeho identifikátorů prostředků odpovídá implementaci a jak každá implementace zvládne vybrat a odeslat aktuální reprezentaci cílového prostředku v odpovědi na GET.
Klient může změnit sémantiku GET tak, aby se jednalo o "požadavek rozsahu", který požaduje přenos pouze některé části (částí) vybrané reprezentace, a to zasláním pole hlavičky Range v požadavku (RFC7233).
Tělo užitečného zatížení ve zprávě požadavku GET nemá definovanou sémantiku; odeslání těla užitečného zatížení v požadavku GET může způsobit, že některé existující implementace požadavek odmítnou.
Odpověď na požadavek GET lze uložit do mezipaměti; mezipaměť ji MŮŽE použít k uspokojení následných požadavků GET a HEAD, pokud není v poli záhlaví Cache-Control uvedeno jinak (část 5.2 dokumentu RFC7234).
Popis metody GET
GET metoda HTTP protokolu je srovnatelná s digitálním knihovníkem. Slušně žádá server, aby prezentoval data bez jakýchkoli změn v datech samotných – je to čistě pasivní požadavek.
Co dělá GET metodu výjimečnou?
- Konzistence: Představte si, že požádáte knihovníka o stejnou knihu vícekrát – pokaždé dostanete stejnou knihu. Totéž platí pro GET požadavek: vždy dodává stejný výsledek.
- Čtení, ne zápis: GET požadavek má charakter pozorovatele. Dívá se na data, ale nemění je.
- Informace v URL: Považujte URL za adresu nebo rejstříkovou kartu. Udává, kterou knihu nebo informaci hledáte. Avšak pozor: tyto karty by neměly obsahovat soukromé poznámky, protože je mohou vidět ostatní.
- Rychlé a efektivní odpovědi: Díky schopnosti kešovat odpovědi může GET metoda rychle reagovat na opakované požadavky, podobně jako dobře organizovaný knihovník, který přesně ví, kde je každá kniha umístěna.
Ale existují také omezení:
- Omezený prostor pro poznámky: URL má jen určité množství místa pro informace. Je to jako psaní na malou rejstříkovou kartu.
- Žádná tajemství: Protože URL jsou viditelná a mohou být uložena, neměli byste na ně zapisovat žádné citlivé informace.
- Žádný zásah: Pozorovatel neovlivňuje to, co pozoruje. Proto by GET metoda neměla být používána k úpravě dat. K tomu máme v naší digitální nářadí jiné nástroje.
Celkově je GET metoda spolehlivým a nezbytným nástrojem v digitálním prostoru, který nám pomáhá efektivně a bezpečně získávat informace.
What makes the GET method special?
- Consistency: Imagine asking the librarian for the same book multiple times – you would get the same book each time. The same applies to the GET request: it consistently delivers the same result.
- Read, don't write: The GET request has the character of an observer. It looks at data but doesn't change it.
- Information in the URL: Think of the URL as an address or an index card. It indicates which book or information you are looking for. However, caution: these cards shouldn't contain private notes, as they can be viewed by others.
- Fast and efficient responses: Thanks to the ability to cache responses, the GET method can quickly respond to repeated requests, much like a well-organized librarian who knows exactly where each book is located.
But there are also limitations:
- Limited space for notes: The URL only has so much space for information. It's like writing on a small index card.
- No secrets: Since URLs are visible and can be stored, you shouldn't note down any sensitive information on them.
- No interference: An observer doesn't influence what they observe. Therefore, the GET method should not be used to modify data. There are other tools in our digital toolbox for that.
Overall, the GET method is a reliable and essential tool in the digital space, helping us retrieve information efficiently and safely.
Příklad pro metodu HTTP GET
GET /data HTTP/1.1
Host: api.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/58.0.3029.110 Safari/537
Accept: application/json
Accept-Language: de-DE,de;q=0.5
Connection: keep-alive
Cache-Control: max-age=0
Content-Type: application/json
Date: Mon, 31 July 2023 14:58:12 GMT
Server: Apache/2.4.7 (Ubuntu)
Cache-Control: no-cache