předcházející
následující
Hyper Text Transfer Protocol
Kapitola 3. Příkazy protokolu HTTP 1.0
Obsah
3.1. GET
3.2. HEAD
3.3. POST
Časová náročnost kapitoly: 15 minut
Sada běžných příkazů HTTP/1.0 je popsáná dále. Tato sada příkazů může být implementátorem rozšířena,
přídavné metody nemohou předpokládat stejnou sémantiku pro odděleně vytvořené servery a klienty.
3.1. GET
Příkaz GET načte požadované informace, identifikované pomocí URL adresy, jen ze serveru.
S použitím pole hlavičky If-Modified-Since je možné implementovat načtení dat, pokud byly změněny od stanoveného data.
Pomocí této hlavičky jsme schopni rozhodnout, jestli data načtená v cache od minulého použití jsou aktuální, nebo je musíme načítat znovu.
Syntaxe: GET <URL> HTTP/1.0
Příklad: GET http://www.seznam.cz/index.htm HTTP/1.0
3.2. HEAD
Metoda HEAD je identická jako metoda GET s tím rozdílem, že server nevrací žádné tělo zprávy.
Metainformace obsažené v hlavičce odpovědi na požadavek příkazu HEAD jsou stejné jako u příkazu GET.
Tato metoda je často používána pro testování dostupnosti nebo aktuálnosti změn odkazů.
Pokud je použito pole hlavičky If-Modified-Since, je ignorováno.
Syntaxe je stejná jako u příkazu GET
3.3. POST
Metoda POST se používá k odeslání informací na server. Nejčastější použití je
odeslání dat vyplněného formuláře na server. POST je vytvořena, aby pomohla zajistit ostatním metodám tyto funkce:
- Komentář k existujícím zdrojů
- Odeslání zprávy na vývěsku, konference, emailového seznamu nebo podobných skupin
- Zajištění bloku dat jako výsledek odeslání formuláře
- Rozšíření databáze pomocí operace append.
Aktuální funkce prováděné metodou POST jsou odvozeny serverem a obvykle závisejí na
požadavkové URI. Pomocí URI se rozlišuje operace s daty prováděná.
Při použití metody POST je vyžadováno správně vyplněné pole hlavičky Content-Length. Server může odpovědět chybovou
zprávou 400 (bad request), pokud nedokáže určit velikost obsahu zprávy. Aplikace nesmí cachovat odpovědí na příkaz POST,
protože nemají žádnou možnost jak zjistit, zda server v budoucnu na stejný požadavek odpoví stejně.
3.4. Cvičení
Zadání:
Které příkazy se používají k odeslání dat na server a které slouží k získání informací ze serveru?
3.5. Cvičení
Zadání:
Jaké operace můžeme realizovat pomocí příkazu POST?
3.6. Cvičení
Zadání:
Jaký je rozdíl v použití příkazů GET a HEAD?