If you're seeing this message, it means we're having trouble loading external resources on our website.

Pokud používáš webový filtr, ujisti se, že domény: *.kastatic.org and *.kasandbox.org jsou vyloučeny z filtrování.

Hlavní obsah

Hypertext Transfer Protocol (HTTP)

Kdykoli na webu navštívíš stránku, tvůj počítač používá Hypertext Transfer Protocol (HTTP) ke stažení této stránky z jiného počítače někde na internetu.
Pojďme si tento proces projít.

Krok 1: Navedení prohlížeče na adresu URL

Pro prohlížení webu můžeme použít mnoho typů počítačů (jako notebooky, stolní počítače a telefony), dokud mají tyto počítače nainstalovanou aplikaci prohlížeč.
Uživatel buď do prohlížeče napíše Uniform Resource Locator (URL), nebo otevře odkaz z již otevřené stránky:
Schéma okna prohlížeče s adresou URL v adresním řádku: "http://www.example.com/index.html"
Všimni si, že tato URL začíná s "http". Pro prohlížeč je to signál, že k načtení dokumentu pro tuto URL musí použít HTTP.
🔍 Jaký prohlížeč nyní používáš? Jaká je URL adresa této stránky? Čím začíná?

Krok 2: Prohlížeč vyhledá IP

Obvykle do prohlížečů píšeme pěkné a srozumitelné URL adresy, jako "khanacademy.org" a "wikipedia.org". Názvy domén jsou mapovány na IP adresy, skutečné umístění počítačů dané domény. O to se stará Systém doménových jmen DNS.
Prohlížeč používá k mapování domény na IP adresu DNS resolver:
Schéma s notebookem nalevo a serverem napravo. Notebook má okno prohlížeče a šipku směřující k serveru označenou "www.example.com = ?“. Server je označený "DNS resolver" a směřuje od nej šipka zpět k notebooku označená "93.184.216.34"

Krok 3: Prohlížeč odesílá požadavek HTTP

Jakmile prohlížeč identifikuje IP adresu počítače hostujícího požadovanou URL, odešle HTTP požadavek.
Schéma s notebookem vlevo a serverem vpravo. Notebook má okno prohlížeče a šipka směřující na server s paketem, který obsahuje požadavek HTTP. Server je označen jako "www.example.com" a jeho IP adresa "93.184.216.34".
HTTP požadavek může obsahovat pouhé dva řádky textu:
GET /index.html HTTP/1.1
Host: www.example.com
První slovo je HTTP sloveso: "GET". Existují ale i jiná slovesa pro jiné akce na webu, jako je například odesílání dat formuláře ("POST").
Další část specifikuje cestu: "/index.html". Hostitelský počítač ukládá obsah celého webu, takže prohlížeč musí konkrétně naznačit, kterou stránku chce načíst.
Poslední část prvního řádku specifikuje protokol a verzi protokolu: "HTTP/1.1".
Druhý řádek specifikuje doménu požadované URL. Hodí se to v případě, že hostitelský počítač ukládá obsah pro více webových stránek.

Krok 4: Hostitel odešle zpět HTTP odpověď

Jakmile hostitelský počítač obdrží HTTP požadavek, odešle zpět odpověď jak s obsahem, tak s jeho metadaty.
Schéma s notebookem vlevo a serverem vpravo. Server je označen "www.example.com" a jeho IP adresa "93.184.216.34". Od serveru k notebooku směřuje šipka s paketem, který obsahuje HTTP odpověď.
Odpověď HTTP začíná podobně jako požadavek:
HTTP/1.1 200 OK
Odpověď začíná protokolem a jeho verzí, "HTTP/1.1".
Další číslo je velmi důležitý HTTP stavový kód, a v tomto případě je to 200. Tento kód představuje úspěšné načtení dokumentu ("OK").
Pokud server v načítání dokumentu selže, poskytnou stavové kódy doplňující informace, jako například zda došlo k chybě ze strany uživatele či serveru. Nejznámější stavový kód je 404 ("Soubor nenalezen"). To se děje vždy, když navštívíš na serveru cestu, která neodpovídá žádnému dokumentu. Vzhledem k tomu, že uživatelé mají ve zvyku psát URL nesprávně, objevuje se 404 docela často, takže webové stránky podávají webové stránky 404 zábavnou formou. Zkus napsat nesmyslnou URL adresu Khan Academy a uvidíš, co se stane!
Další část HTTP odpovědi tvoří hlavičky. Poskytují prohlížeči doplňující podrobnosti a pomáhají prohlížeči vykreslit obsah.
Tyto dvě hlavičkou jsou velmi běžné u většiny požadavků:
Content-Type: text/html; charset=UTF-8
Content-Length: 208
Typ obsahu (Content-Type) prohlížeči říká, jaký typ dokumentu odesílá nazpátek. Běžný typ obsahu na webu je "text/html", protože všechny webové stránky jsou textové soubory HTML. K dispozici jsou i další typy, jako obrázky ("image/png"), videa ("video/mpeg"), skript ("application/javascript") a cokoliv jiného, co lze v přohlížeči načíst.
Délka obsahu (Content-Length) udává délku dokumentu v bajtech, což prohlížeči pomáhá vědět, jak dlouho bude stažení souboru trvat.
A na konec HTTP odpověď vypíše samotný požadovaný dokument. Tato stránka je jednoduchý HTML soubor:
<!DOCTYPE html>
<html>
  <head>
    <title>Example Domain</title>
  </head>
  <body>
    <h1>Example Domain</h1>
    <p>This domain is to be used for illustrative examples in documents.</p>
  </body>
</html>
Chceš-li pochopit fungování HTML podrobněji, můžeš se podívat na náš kompletní HTML/CSS kurz.

Krok 5: Prohlížeč vykreslí odpověď

Prohlížeč má nyní všechny informace, které potřebuje k vykreslení požadovaného dokumentu.
Ilustrace prohlížeče s adresním řádkem odkazujícím na "http://www.example.com/index.html". Webová stránka zobrazuje nadpis "Příklad domény" a odstavec "Tato doména se použije pro ilustrativní příklady v dokumentech".

Vyzkoušej si to

Mnoho prohlížečů obsahuje ladící nástroje, které ti umožní zobrazit si HTTP požadavky a jejich odpovědi při prohlížení webu.
Pojďme si to zkusit v Chrome.
Nejprve si musíme v Chrome otevřít nástroje pro vývojáře. Jedním ze způsobů, jak to udělat, je otevřít menu "Zobrazit", pak vybrat "Vývojář" → "Nástroje pro vývojáře". Jakmile se okno otevře, vyber záložku "Network" (Síť).
Snímek obrazovky nástrojů pro vývojáře v prohlížeči Chrome s otevřenou záložkou "Network" (síť).
Dále do řádku prohlížeče zadej adresu URL, například "http://www.example.com/index.html". Požadavek HTTP se zobrazí v konzoli a prohlížeč vykreslí stránku.
Snímek obrazovky nástrojů vývojáře v prohlížeči Chrome s otevřenou záložkou "Network" (síť). Je zde jediný řádek pro "index.html".
Tento požadavek můžeme prozkoumat a podívat se na zajímavé podrobnosti. Klikni na "index.html" pod sloupcem "Name" (název). Zobrazí se rozhraní záložek s výchozí záložkou "Headers".
Snímek obrazovky nástrojů pro vývojáře v Chrome, záložka "Network". Levá strana zobrazuje "index.html". Pravá strana zobrazuje rozhraní záložek s otevřenou záložkou "Headers". Záložka headers má sekce pro "General" a "Response headers".
"Response headers" obsahují hlavičky probrané výše, jako "Content-Type" (typ obsahu) a "Content-Length" (délka obsahu), plus spoustu dalších zajímavých hlaviček.
Samotný HTML obsah odpovědi je v další záložce, "Response" (Odpověď).
Snímek obrazovky nástrojů pro vývojáře v Chrome, záložka "Network". Levá strana zobrazuje "index.html". Pravá strana zobrazuje rozhraní záložek s otevřenou záložkou "Response". Záložka response obsahuje HTML kód.
🔍 Otevři záložku "Network" a prozkoumej více webových stránek. Kolik požadavků HTTP každá webová stránka vyhotoví? Jaké druhy obsahu jsou v odpovědích? Co tě překvapuje nejvíc?

HTTP a TCP/IP

HTTP je protokol používaný nad protokoly TCP/IP.
Každý požadavek HTTP je uvnitř IP paketu a každá odpověď HTTP je uvnitř jiného IP paketu - nebo obvykleji mnoha paketů, protože data odpovědi mohou být docela velká.
Schéma s notebookem vlevo a serverem vpravo. Notebook má okno prohlížeče s "http://www.example.com/index.html" v adresním řádku. Server je označen jako "www.example.com" a jeho IP adresa "93.184.216.34". Jsou zobrazeny 4 šipky:
  • První šipka směřuje z notebooku na server a zobrazuje paket, uvnitř kterého je HTTP požadavek.
  • Druhá šipka směřuje ze serveru na notebook a zobrazuje paket, uvnitř kterého je "ACK".
  • Třetí šipka směřuje ze serveru na notebook a zobrazuje paket, uvnitř kterého je HTTP odpověď.
  • Čtvrtá šipka směřuje z notebooku na server a zobrazuje paket, uvnitř kterého je "ACK".
Existuje mnoho dalších protokolů používaných nad protokoly TCP/IP, jako jsou protokoly pro odesílání e-mailů (SMTP, POP, IMAP) a nahrávání souborů (FTP).
Všechny tyto protokoly nám umožňují používat internet tak, abychom se připojili k ostatním zařízením užitečnými způsoby a mohli tak komunikovat a spolupracovat přes veliké vzdálenosti.

🙋🏽🙋🏻‍♀️🙋🏿‍♂️Máš k tomuto tématu nějaké dotazy? Rádi ti je zodpovíme — zeptej se v sekci pro dotazy níže!

Chceš se zapojit do diskuze?

Zatím žádné příspěvky.
Umíš anglicky? Kliknutím zobrazíš diskuzi anglické verze Khan Academy.