Protokol HTTP

Z MiS
Verze z 5. 1. 2021, 20:21; Spravce (diskuse | příspěvky)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Přejít na: navigace, hledání


Obsah

Protokol HTTP


Chování klienta a serveru

Příprava na stažení webové stránky

  1. Uživatel zadá adresu do adresního řádku prohlížeče.
  2. Pro navázání spojení se serverem je třeba získat IP adresu serveru.
  3. Prohlížeč proto osloví DNS server a přeloží doménové jméno na IP adresu (například www.oauh.cz212.111.4.142).
Tato komunikace ještě přímo nesouvisí s protokolem HTTP, využíváme zde Protokoly aplikační vrstvy.

HTTP: Odeslání příkazu a přijetí odpovědi

  1. Prohlížeč naváže spojení se serverem pomocí IP adresy (využije služeb protokolu TCP).
  2. Prohlížeč pošle příkazy, které požaduje provést
    Příklad: GET nazev_stranky.htm HTTP/1.1
  3. K požadavku může připojit ještě další informace: hlavičky protokolu HTTP. Jejich počet je volitelný.
  4. Některé hlavičky mohou být povinné (například hlavička Host v protokolu HTTP 1.1).
  5. Požadavek končí prázdným řádkem.

Zpracování požadavku: dynamické stránky

HTTP: Odpověď serveru

  1. Jako odpověď server vrátí verzi protokolu, stavový kód a textový popis stavu.
    • Příklad: HTTP/1.1 200 OK ... požadavek skončil bez chyby
    • Příklad: HTTP/1.1 404 Page Not Found ... požadovaný soubor na serveru nebyl nalezen.
  2. Následují hlavičky odpovědi. (Počet je volitelný.)
  3. Poté server připojí prázdný řádek a data souboru, který byl požadován.
  4. Přijetím odpovědi komunikace končí.
  5. Protože je protokol bezstavový, může server zapomenout veškeré informace. Příští spojení bude zcela nezávislé na tomto.
  6. Prohlížeč následně zobrazí stránku podle popisu v jazyce HTML
Protokol HTTP verze 1.1 umožňuje po ukončení komunikace (po přijetí odpovědi) ihned poslat další požadavek bez ukončení spojení. Server tedy spojení neuzavírá ihned po odeslání odpovědi, ale až s nějakým zpožděním.

Obrázky a jiné objekty ve stránkách



Metody HTTP


Metoda GET


Další metody

POST
PUT
DELETE


Hlavičky protokolu HTTP

Příklady hlaviček prohlížeče


Příklady hlaviček serveru



Verze protokolu HTTP


Úkol: Prohlédněte si komunikaci

Úkol
Prohlédněte si komunikaci mezi klientem a serverem
  1. Najděte stránku WebSniffer.cc.
  2. Zadejte nějakou URL adresu do okénka.
  3. Web sniffer vám vypíše kompletní komunikaci mezi vaším prohlížečem a serverem.
  4. Zobrazen máte požadavek s odeslanými hlavičkami i přijatou odpověď včetně hlaviček, které poskytuje server.


Úkol: Odeslání požadavku ručně

Úkol: Vyzkoušejte si ručně, co musí udělat prohlížeč!
  • Vyberte si web, ke kterému se zkusíte připojit. (V našem příkladu píšeme www.oauh.cz. Vy napište skutečnou URL adresu bez HTTP.
  • Do poznámkového bloku (či jiného čistě textového editoru) si připravte požadavek:
GET / HTTP 1.1
Host: www.oauh.cz
<prázdný řádek>
  • Připravený požadavek (včetně prázdného řádku na konci) zkopírujte do schránky.
  • Spusťte program PuTTY a vyplňte údaje pro připojení k serveru.
Server: www.oauh.cz
Port: 80
Connection-type: raw
  • Aby se po ukončení spojení okno neuzavřelo, zatrhněte navíc:
Close window on exit: Never
  • Ihned po navázání spojení klikněte do okénka PuTTY pravým tlačítkem.
    • Tím provedete operaci „paste“: odešlete otevřeným spojením celý obsah schránky Windows (ve schránce máte připravený požadavek HTTP GET).
  • Zkontrolujte odpověď.
    • Odpověď serveru by měla začínat: HTTP/1.1 200 OK
    • Pokud je odpověď jiná, najděte chybový kód a upravte postup.
    • Dnes servery často vyžadují šifrované spojení přes HTTPS. V tom případě bude nejspíš odpověď serveru začínat: HTTP/1.1 301 Moved permanently a bude následovat hlavička Location:, která udává, na jaké adrese najdete stránku nyní (https://...).
Obvyklé chyby
  • Chybějící hlavička Host:
  • Špatná velikost písmen (dodržte malá a velká písmena podle vzoru).
  • Chybějící prázdný řádek na konci (požadavek končí prázdným řádkem — dvěma dvojicemi CR+LF).
Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje