HTTP (Hypertext Transfer Protocol)

HTTP je aplikační protokol založený na architektuře klient-server. Funguje na principu „požadavek–odpověď“ (request–response). Klient (typicky prohlížeč) odešle požadavek na server, a ten mu vrátí odpověď obsahující data (např. soubor HTML, obrázek nebo video).

HTTP je tzv. bezstavový protokol (stateless), což znamená, že každá operace je nezávislá a server si standardně nepamatuje, co klient dělal v předchozím kroku. K udržení „stavu“ (např. přihlášení uživatele) se proto používají doplňkové technologie jako cookies.

Jak probíhá komunikace

Proces získání webové stránky probíhá v následujících krocích:

1. **Navázání spojení:** Klient naváže spojení se serverem (obvykle přes port 80).
2. **HTTP Request (Požadavek):** Klient pošle zprávu typu: "Dej mi soubor /index.html".
3. **Zpracování na serveru:** Server vyhledá soubor nebo vygeneruje data.
4. **HTTP Response (Odpověď):** Server pošle data spolu s informací o výsledku (stavový kód).
5. **Ukončení/Udržení:** Spojení se ukončí nebo zůstane otevřené pro další prvky (obrázky apod.).

Metody požadavku (Verbs)

HTTP definuje různé metody pro interakci se zdroji na serveru:

Metoda	Účel
GET	Získání dat ze serveru (např. načtení stránky).
POST	Odeslání dat na server (např. odeslání registračního formuláře).
PUT	Nahrazení existujícího zdroje novými daty.
DELETE	Smazání konkrétního zdroje na serveru.

Stavové kódy (Status Codes)

Server v odpovědi vždy posílá trojmístné číslo, které indikuje výsledek:

1xx (Informativní): Požadavek byl přijat, zpracování pokračuje.

2xx (Úspěch): Vše proběhlo v pořádku (nejznámější je 200 OK).

3xx (Přesměrování): Zdroj se nachází jinde (např. 301 Moved Permanently).

4xx (Chyba klienta): Špatný požadavek (legendární 404 Not Found).

5xx (Chyba serveru): Server selhal (např. 500 Internal Server Error).

Evoluce verzí

HTTP/1.1 (1997): Standard, který zavedl trvalá spojení (není nutné pro každý obrázek otevírat nové spojení). Dodnes velmi rozšířený.

HTTP/2 (2015): Přinesl binární přenos a multiplexování (stahování mnoha souborů naráz přes jedno spojení), což výrazně zrychlilo načítání stránek.

HTTP/3 (2022): Využívá protokol QUIC (postavený na UDP). Je navržen pro moderní mobilní sítě, aby se lépe vyrovnal se ztrátami paketů a změnami připojení.

[Image comparing HTTP/1.1 and HTTP/2 multiplexing performance]

Bezpečnost: HTTPS

Samotné HTTP je nezabezpečené – data putují sítí v čitelné podobě, což umožňuje jejich odposlech. Proto vzniklo HTTPS (Hypertext Transfer Protocol Secure).

Využívá šifrování TLS (Transport Layer Security).

Zajišťuje Důvěrnost (nikdo data nepřečte), Integritu (data nikdo cestou nezmění) a Autentizaci (máte jistotu, že komunikujete se skutečným serverem).

Související pojmy: HTTPS, URL, Browser, Cookie, HTML, IP adresa, DNS, TLS.