GET /profile/140f269cb240 HTTP/1.1
Accept: text/html
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
GET, POST).HTTP/1.1).Host: usermap.cvut.cz, Accept: text/html).POST nebo PUT (např. data z formuláře).HTTP/1.1 200 OK
Date: Sun, 5 Jul 2020 16:46:06 GMT
Content-Type: text/html
Content-Length: 39
<html>
<body>Ahoj svete!</body>
</html>
200).OK).Content-Type: text/html, Content-Length: 39).Metody specifikují požadovanou akci
Idempotence
GET, PUT, DELETE a bezpečné HEAD, OPTIONSPOST a PATCH obecně idempotentní nejsou.Bezpečnost
GET, HEAD, OPTIONS| Metoda | Popis | Idempotentní | Bezpečná |
|---|---|---|---|
GET |
Vyžádá reprezentaci specifikovaného zdroje. Neměla by měnit stav serveru (je safe a idempotentní). Používá se pro zobrazení stránek, vyhledávání. |
✅ | ✅ |
POST |
Odesílá data ke zpracování na specifikovaný zdroj. Často způsobuje změnu stavu nebo vedlejší efekty na serveru (není ani safe, ani idempotentní). Používá se pro odesílání formulářů, vytváření nových zdrojů. |
❌ | ❌ |
PUT |
Nahrazuje veškeré aktuální reprezentace cílového zdroje daty z požadavku. Je idempotentní (opakované volání má stejný efekt jako jedno). |
✅ | ❌ |
DELETE |
Maže specifikovaný zdroj. Je idempotentní. |
✅ | ❌ |
HEAD |
Podobné GET, ale odpověď serveru neobsahuje tělo, pouze hlavičky.Používá se pro získání metadat o zdroji bez přenosu celého obsahu. |
✅ | ✅ |
PATCH |
Aplikuje částečné modifikace na zdroj. Není ani safe, ani idempotentní. |
❌ | ❌ |
OPTIONS |
Vrací HTTP metody, které server podporuje pro danou URL. | ✅ | ✅ |
CONNECT |
Vytváří tunel k serveru identifikovanému cílovým zdrojem. Např. pro použití SSH nebo FTP přes HTTP(S) protokol. |
❌ | ❌ |
100 Continue)200 OK: Standardní odpověď pro úspěšné HTTP požadavky.201 Created: Požadavek byl splněn a jako výsledek byl vytvořen nový zdroj (typicky po POST nebo PUT).204 No Content: Server úspěšně zpracoval požadavek, ale nevrací žádný obsah (např. po DELETE).301 Moved Permanently: Požadovaný zdroj byl trvale přesunut na novou URL. Prohlížeče by si měly novou adresu zapamatovat.302 Found (dříve Moved Temporarily): Požadovaný zdroj je dočasně na jiné URL. Prohlížeče by měly nadále používat původní URL.304 Not Modified: Odpověď na podmíněný GET požadavek (využívající hlavičky jako If-None-Match nebo If-Modified-Since). Indikuje, že zdroj se od poslední žádosti nezměnil a klient může použít cachovanou verzi.400 Bad Request: Server nemůže nebo nechce zpracovat požadavek kvůli něčemu, co je vnímáno jako chyba klienta (např. chybná syntaxe požadavku).401 Unauthorized: Požadavek vyžaduje autentizaci. Klient se musí autentizovat, aby získal požadovanou odpověď.403 Forbidden: Server rozuměl požadavku, ale odmítá jej autorizovat. Autentizace nepomůže.404 Not Found: Server nenalezl požadovaný zdroj405 Method Not Allowed: Metoda specifikovaná v řádku požadavku není pro daný zdroj povolena.500 Internal Server Error: Obecná chybová zpráva, když server narazil na neočekávanou podmínku, která mu zabránila splnit požadavek.503 Service Unavailable: Server není momentálně schopen zpracovat požadavek (např. z důvodu přetížení nebo údržby).Hlavičky přenášejí dodatečné informace.
Dělí se na obecné, hlavičky požadavku a hlavičky odpovědi.
Některé důležité hlavičky:
Host (požadavek): Doménové jméno serveru (povinná v HTTP/1.1).User-Agent (požadavek): Informace o klientovi (prohlížeči).Accept (požadavek): Typy médií, které klient akceptuje (např. text/html, application/json).Content-Type (požadavek/odpověď): Typ média těla zprávy.Content-Length (požadavek/odpověď): Délka těla zprávy v bajtech.Authorization (požadavek): Autentizační údaje klienta.WWW-Authenticate (odpověď): Výzva k autentizaci (používá se s kódem 401).Location (odpověď): Používá se při přesměrování (s kódy 3xx) k určení nové URL.Set-Cookie (odpověď): Nastavuje cookie u klienta.Cookie (požadavek): Odesílá dříve nastavené cookies serveru.Cache-Control (požadavek/odpověď): Direktivy pro cachování.
max-age=<sekundy>: Maximální doba platnosti cache.no-cache: Cache musí být před použitím validována u serveru (např. pomocí ETag).no-store: Odpověď nesmí být vůbec cachována.private: Může být cachováno pouze soukromou cache (prohlížečem), nikoli sdílenými (proxy).public: Může být cachováno jakoukoli cache.ETag (odpověď): Identifikátor verze zdroje. Používá se pro podmíněné požadavky a efektivní cachování.If-None-Match (požadavek): Používá se s ETag. Pokud se ETag shoduje, server vrátí 304 Not Modified.Last-Modified (odpověď): Datum poslední modifikace zdroje.If-Modified-Since (požadavek): Používá se s Last-Modified. Pokud se zdroj od té doby nezměnil, server vrátí 304 Not Modified.GET metodaGET /index.htmlRequest:
GET /index.html
Response:
<html>
<body>Ahoj světe!</body>
</html>
Request:
GET /index.html HTTP/1.0
Accept: text/html
Response:
HTTP/1.0 200 OK
Content-Type: text/html
Content-Length: 39
<html>
<body>Ahoj světe!</body>
</html>
Host (kvůli VirtualHost, více domén na jedné IP)Informace o stavu mohou být zakódovány přímo do URL, typicky jako parametry dotazu (query parameters).
Příklad: http://localhost/search?user=Svobo*&page=2
Výhody
<a href="...">).Nevýhody
Cookies jsou malé datové fragmenty, které server může uložit na straně klienta (v prohlížeči) a které klient následně posílá s každým dalším požadavkem na stejný server.
Server nastavuje cookie pomocí hlavičky Set-Cookie v odpovědi.
Klient posílá cookie na stejnou doménu pomocí hlavičky Cookie v požadavku.
Vlastnosti a parametry cookies
Expires nebo Max-Age: Doba platnosti cookie. Expires udává konkrétní datum a čas, Max-Age dobu v sekundách od nastavení. Pokud není nastaveno, jedná se o session cookie, která se smaže po zavření prohlížeče.Domain: Určuje domény, pro které je cookie platná.Path: Určuje cesty na serveru, pro které je cookie platná.Secure: Pokud je nastaven, cookie bude odesílána pouze přes HTTPS spojení.HttpOnly: Pokud je nastaven, cookie není přístupná přes JavaScript (document.cookie), což pomáhá chránit proti XSS útokům, které by se snažily cookie ukrást. Toto je důležité bezpečnostní opatření, protože i když XSS zranitelnost existuje, útočník nemůže přímo přečíst session cookie.SameSite: Kontroluje, zda je cookie odesílána s cross-site požadavky. Pomáhá chránit proti CSRF útokům.
Strict: Cookie se neposílá s žádnými cross-site požadavky, ani při navigaci.Lax: Cookie se posílá při top-level navigaci (např. kliknutí na odkaz), ale ne při cross-site subrequestech (např. načítání obrázků, iframů) nebo POST požadavcích. Toto je často výchozí hodnota v moderních prohlížečích.None: Cookie se posílá se všemi cross-site požadavky. Vyžaduje atribut Secure.SameSite hodnotSessions představují mechanismus, kde server ukládá data o stavu klienta na své straně a klientovi posílá pouze unikátní identifikátor relace (Session ID), typicky prostřednictvím cookie.
Správa session je klíčová pro bezpečnost. Je důležité generovat silné, náhodné Session ID, pravidelně je měnit (session regeneration), používat HTTPS a atributy HttpOnly a Secure pro session cookie.
Princip
JSESSIONID, PHPSESSID).Párování klienta a session
HttpOnly a Secure atributy.Výhody
Nevýhody
Úložiště session dat
Moderní alternativa ke cookies pro ukládání dat na straně klienta, která nejsou automaticky posílána s každým HTTP požadavkem.
K Web Storage má nativní přístup pouze klient (JavaScript)
Pokud chceme data z Web Storage poslat na backend server, musí to JavaScript udělat explicitně (manuálně). Typicky je načte z úložiště a vloží do těla (body) nebo do hlaviček AJAX/Fetch požadavku.
LocalStorage
SessionStorage
Bezpečnost
localStorage.getItem('tajnyToken') a data si odeslat na svůj server.HttpOnly (který JS zablokoval úplně), u Web Storage taková obrana neexistuje – z podstaty věci je to úložiště určené pro JavaScript.localStorage ani sessionStorage neměly ukládat vysoce citlivé údaje, u kterých hrozí katastrofa při jejich odcizení.Vytvořeno: 18. 6. 2026, 16:26
Poslední aktualizace: 20. 6. 2026, 14:37