Přejít na hlavní obsah

Návody / HTTP stavové kódy vysvětlené

Stavové kódy úspěchu 2xx

Stavový kód 2xx znamená, že požadavek byl přijat, pochopen a akceptován: server udělal, co bylo požadováno. Jednotlivé kódy se liší v tom, co se s tímto úspěchem vrátilo. Tělo, umístění, vůbec nic, nebo jen část zdroje.

Co pokrývá rodina 2xx

Úspěch není jedna jediná podmínka. Prohlížeč stahující stránku, formulář odesílající nový záznam, úloha na pozadí přijímající práci na později a přehrávač videa žádající o bajty 5 000 000 až 6 000 000 jsou všechny úspěšné, ale potřebují jiné odpovědi. To je to, co kódy 2xx zakódovávají. RFC 9110 definuje 200 až 206; hrstka dalších pochází z rozšíření jako WebDAV.

Pro běžný webový provoz je naprostá většina úspěšných odpovědí obyčejné 200. Zbytek záleží hlavně klientům API, cestám nahrávání a doručování médií.

Kódy 2xx a kdy se každý objeví

  • 200 OK. Standardní úspěch. U GET je tělem požadovaný zdroj; u POST je to výsledek akce. Toto vrací zdravá stránka.
  • 201 Created. Požadavek vytvořil nový zdroj. Slušně se chovající API vrátí 201 s hlavičkou Location ukazující na věc, kterou právě vytvořilo. Toto vidíte v logách API, v prohlížeči zřídka.
  • 202 Accepted. Požadavek byl přijat ke zpracování, ale ještě není hotový. Používá se pro asynchronní práci, jako hromadný import nebo zprávu, která se vygeneruje na pozadí. 202 je slib, ne výsledek, takže klient obvykle musí dotazovat stavovou URL.
  • 203 Non-Authoritative Information. Úspěch, ale proxy nebo transformující prostředník odpověď cestou upravil. Na moderních webech neobvyklé.
  • 204 No Content. Úspěch záměrně bez těla. Typické pro DELETE, PUT, který uložil, aniž by potřeboval cokoli ozvěnou vrátit, nebo koncový bod automatického ukládání. Prohlížeč zůstává na aktuální stránce.
  • 205 Reset Content. Úspěch, a klient by měl resetovat formulář nebo pohled na dokument, který požadavek odeslal. V praxi se používá zřídka.
  • 206 Partial Content. Server vrací jen rozsah bajtů, o který klient požádal hlavičkou Range. Takto funguje přetáčení videa, obnovitelná stahování a přenosy velkých souborů, takže 206 je na koncových bodech médií normální a očekávané.
  • 207 Multi-Status a 208 Already Reported pochází z WebDAV, kde jeden požadavek může jednat na mnoha zdrojích a potřebuje nahlásit výsledek pro každý zdroj zvlášť. 226 IM Used pochází z rozšíření delta-encoding a nasazuje se velmi zřídka.

Proč 200 nedokazuje, že je stránka zdravá

Stavový kód popisuje výsledek transakce HTTP, ne správnost toho, co se vrátilo. Značková stránka "jsme dole kvůli údržbě" se servíruje s 200. Stejně tak chybová stránka aplikace, když framework zachytí výjimku a vykreslí přátelskou omluvu přes běžnou šablonu s jejím výchozím stavem. Stránka vykreslená na klientovi, jejíž volání API selhalo, vrací 200 pro prázdný obal kolem chybějícího obsahu, a měkké 404 vrací 200 pro zprávu "stránka nenalezena", což navíc mate vyhledávače.

V každém z těchto případů kontrola stavového kódu hlásí úspěch, zatímco vaši návštěvníci vidí rozbitý web. Oprava je kontrola obsahu: ověřte, že je v těle odpovědi přítomný známý řetězec, nebo že chybí známý chybový řetězec, navíc ke kontrole kódu.

Jak zkontrolovat, co URL skutečně vrací

  1. Vyžádejte si jen hlavičky a přečtěte si stavový řádek:
    curl -sI https://example.com/ | head -n 1
  2. Pokud je to 200, stáhněte i tělo a potvrďte, že obsahuje, co má. Vyhledejte řetězec, který se objevuje jen na funkční stránce, například nadpis nebo značku patičky.
  3. U koncového bodu API ověřte, že kód odpovídá sémantice: vytvoření by mělo být 201 s Location, smazání by mělo být 204, a dlouho běžící úloha by měla být 202 se stavovou URL.
  4. U médií potvrďte, že server inzeruje Accept-Ranges: bytes a na požadavek s rozsahem odpoví 206. Pokud na požadavek s rozsahem odpoví 200, přetáčení bude pomalé, protože se znovu odešle celý soubor.
  5. Zopakujte kontrolu z jiné sítě. Odpověď, která je u vás 200 a jinde chyba, ukazuje na DNS, CDN nebo geografické směrování, ne na aplikaci.

Kontrola těla, ne jen kódu

Kontrola stavového kódu nahlásí zelený web, který servíruje chybovou stránku, takže ji spárujte s ověřením obsahu na stejném požadavku. HostTracker monitoruje weby od roku 2004 a nabízí 13 typů monitorů, takže jednu URL lze sledovat kvůli jejímu stavovému kódu, kvůli klíčovému slovu v odpovědi a kvůli době odezvy zároveň. Prožeňte URL nástrojem na HTTP kontrolu, abyste viděli kód a hlavičky, které vrací právě teď, a pak si přečtěte co skutečně znamená 200 OK a chybové kódy serveru 5xx pro selhání, která 200 dokáže maskovat.

Zkontrolovat hned

Spusťte bezplatnou kontrolu na svém webu - bez registrace.

HTTP check

Sledovat trvale

Dostanete upozornění ve chvíli, kdy něco přestane fungovat: HostTracker kontroluje z více než 300 lokalit a upozorní vás e-mailem, SMS, přes Slack, Telegram a další.

Funkce HostTracker

Více v této sekci: HTTP stavové kódy vysvětlené