HTTP (HyperText Transfer Protocol, protokol pro přenos hypertextu) je soubor pravidel, podle kterých spolu mluví Váš prohlížeč a server, na kterém běží web. Když zadáte adresu, prohlížeč pošle serveru požadavek a dostane zpět odpověď se stránkou. Tahle výměna se opakuje u každého obrázku, stylu i skriptu zvlášť.
Přirovnání k objednávce v jídelně: prohlížeč je host, server je kuchyně, HTTP je jazyk objednávky. Host řekne, co chce (metodu a adresu), kuchyně odpoví buď jídlem, nebo vzkazem, že položka došla.
Požadavek má vždycky několik částí, které se hodí znát:
- Metoda – co se má stát. GET znamená „pošli mi stránku", POST „přijmi ode mě data", například odeslaný formulář.
- Adresa – konkrétní URL, o kterou jde.
- Hlavičky – doprovodné údaje: jaký prohlížeč se ptá, jaké jazyky umí, jestli zvládne komprimovanou odpověď, jaké posílá cookies.
- Tělo – vlastní obsah, u odpovědi typicky HTML kód stránky.
Každá odpověď začíná trojmístným stavovým kódem, který shrne výsledek. Čísla od 200 znamenají úspěch, od 300 přesměrování, od 400 chybu na straně žadatele (sem patří známá chyba 404) a od 500 chybu na straně serveru. Kód je první věc, podle které se hledá příčina potíží – ostatně se zapisuje i do logů.
Důležitá vlastnost HTTP je, že si nic nepamatuje: každý požadavek je sám o sobě a server po odpovědi zapomene, kdo se ptal. Proto vznikly cookies, díky kterým zůstáváte přihlášení a v košíku Vám nemizí zboží.
Samotné HTTP posílá vše nezašifrovaně, takže si obsah může cestou přečíst kdokoli po trase. Dnes se proto používá výhradně zabezpečená varianta HTTPS, kterou prohlížeče vyžadují a bez níž stránku označí jako nedůvěryhodnou. Přenos historicky stojí na protokolu TCP, nejnovější verze HTTP/3 ale běží na QUIC a je znatelně svižnější.