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

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:

  1. Prostudujte popis protokolu HTTP v prezentaci aplikační vrstvy.
  2. Prostudujte popis použitých nástrojů v příloze tohoto zadání.
  3. 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í.

  4. 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:

    Rozmyslete si tedy dobře, jaká je adresu dokumentu na serveru při zadávání HTTP příkazu!

  5. Celou komunikaci (obsah okna programu Putty) si zkopírujte pro zpracování protokolu.
  6. 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).
  7. Stejným způsobem požadujte od serveru zaslání souboru xyzab.htm, který na serveru není.
  8. Zkuste pomocí protokolu HTTP 0.9 stáhnout stránku index.php ze serverů:
    1. mis.martin-simunek.cz
    2. moodle.martin-simunek.cz
    3. 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

  1. Vypište kompletní komunikaci se serverem z předchozích úkolů.
  2. 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 souboruDélka souboruTyp souboru
       
    .........
  3. 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.
  4. 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.
  5. 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).
  6. Zapište do tabulky IP adresy, přiřazené k následujícím doménovým jménům:
    1. mis.martin-simunek.cz
    2. moodle.martin-simunek.cz
    3. 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:

  1. 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/.