Cvičení 1: protokol HTTP
Poslední aktualizace: 8. 3. 2011
Zadání cvičení:
Vyzkoušejte ručně příkazy, které musí provést prohlížeč pro stažení
a zobrazení webové stránky pomocí protokolu HTTP verze 1.1.
Vyzkoušejte, jaké možnosti dodává protokolu HTTP hlavička Host ve verzi 1.1.
Adresa pokusné stránky:
http://IP adresa serveru/simunek/dak_lab/skupina.htm
- IP adresa serveru... zadá vyučující na tabuli,
- skupina... dostanete přidělenu od vyučujícího
(Př.: skupina A má název souboru a.htm, vždy malým písmenem.).
Pracujte ve dvojicích. Zpracujte zápis dle pokynů.
Nezapomeňte uvést jména obou členů dvojice a skupinu (A, B, C nebo D)!!!!
Postup práce:
- Prostudujte popis protokolu HTTP v prezentaci aplikační vrstvy.
- Prostudujte popis použitých nástrojů v příloze tohoto zadání.
- Připojte se k zadanému webovému serveru pomocí programu PuTTY.
Program PuTTY naleznete ve složce
K:\Aplikace\dak\PuTTY.
Údaje pro připojení k webovému serveru pomocí PuTTY:
Host: | IP adresa serveru |
Protocol: | Raw |
Port: | 80 |
Nezapomeňte zatrhnout Close window on exit:
Never, jinak vám výstup po ukončení spojení zmizí.
- Pomocí příkazů protokolu HTTP verze 1.1 si vyžádejte obsah pokusné stránky.
Poznámky:
URL adresa se skládá z protokolu, adresy a cesty k dokumentu.
Například v URL:
http://172.16.2.101/simunek/dak_lab/ahoj.htm
je:
- http://označení protokolu,
- 172.16.2.101 adresa serveru, může být i v textovém tvaru,
např. simunek.oauh.cz, www.oauh.cz, apod.
- a /simunek/dak_lab/ahoj.htm cesta k dokumentu na serveru,
Rozmyslete si tedy dobře, jaká je adresu dokumentu na serveru
při zadávání HTTP příkazu!
- Celou komunikaci (obsah okna programu Putty) si zkopírujte pro zpracování
protokolu.
- Pro zobrazení stránky musí prohlížeč stáhnout i soubor se styly
(popis formátování pomocí kaskádových stylů), případně obrázky ve stránce
a obrázky na pozadí.
Zopakujte tedy předchozí postup pro každý soubor, který je třeba stáhnout
(názvy souborů najdete ve zdrojovém kódu stránky, který Vám server vypíše).
-
Stejným způsobem požadujte od serveru zaslání souboru xyzab.htm,
který na serveru není.
-
Zkuste pomocí protokolu HTTP 0.9 stáhnout stránku index.php
ze serverů:
- mis.martin-simunek.cz
- moodle.martin-simunek.cz
- web4.web4ce.cz
Výsledek by měl být u všech stejný. (Zkuste si ho například zkopírovat
do HTML souboru a porovnat výsledek v prohlížeči.)
Zkuste totéž s použitím HTTP 1.1, výsledky se budou lišit.
Zdůvodněte? Napovědět Vám může příkaz nslookup pro zjištění
IP adresy odpovídající zadané doménové adrese.
Vypracování protokolu: úkoly
- Vypište kompletní komunikaci se serverem z předchozích úkolů.
-
Pro každý stažený soubor zjistěte z hlaviček HTTP jeho délku a typ.
Zvýrazněte odpovídající část hlavičky.
Výsledky uveďte do tabulky:
Název souboru | Délka souboru | Typ souboru |
| | |
... | ... | ... |
- Zkopírujte z výpisu komunikace řádek, podle kterého prohlížeč pozná,
zda získání souboru proběhlo v pořádku. Pro každý stahovaný soubor
uveďte, zda stažení proběhlo v pořádku a pokud ne, tak jaká
chyba nastala.
- Jaký software pro realizaci webového serveru (ev. i jaký operační systém)
běží na webovém serveru, se kterým pracujete?
Uveďte řádek z výpisu, ze kterého to zjistíte.
- Zjistěte podobným postupem, jaký software pro realizaci webového serveru
se používá na webovém serveru Seznam.cz.
Pro zjištění hlaviček použijte stránky:
http://web-sniffer.net/
(popis použití viz výše).
- Zapište do tabulky IP adresy, přiřazené k následujícím doménovým jménům:
- mis.martin-simunek.cz
- moodle.martin-simunek.cz
- web4.web4ce.cz
Zapište zdůvodnění, proč se při stažení stránky index.php
z těchto serverů liší odpověď u protokolů HTTP 0.9
a HTTP 1.1.
Použité zdroje:
-
http://en.wikipedia.org/wiki/URI_scheme
Příloha A: Použité nástroje
PuTTY
Jedná se o program, který umožňuje vzdálené připojení k serveru.
Běžně se používá pro komunikaci s linuxovými servery, umožňuje však
použití tzv. Raw protokolu, kdy otevře spojení na transportní vrstvě
pomocí protokolu TCP a nechá nás zapisovat libovolná data. Zobrazuje
pak jak vkládaná data, tak data, která vrací server.
Příkaz se odesílá až po zmáčkutí klávesy Enter, do té doby můžete příkaz
opravovat.
Více viz:
http://www.chiark.greenend.org.uk/~sgtatham/putty/
.
nslookup
Příkaz ve Windows i v Linuxu, který po zadání doménového jména zjistí
zpětným DNS dotazem odpovídající IP adresu.
WebSniffer
Stránky, které umožňují po zadání webové adresy serveru zobrazit hlavičky
protokolu HTTP, které server vrací.
Zadáváte URL adresu serveru, jehož hlavičky chcete zkoumat, verzi protokolu
HTTP, která se má pro požadavek použít a jaký typ HTTP požadavku chcete
použít.
Viz: http://web-sniffer.net/.