Sobes.tech
Junior

Pověz o stavových kódech HTTP.

sobes.tech AI

Odpověď od AI

Kódy stavu HTTP jsou tříciferná čísla, která server vrací jako odpověď na požadavek klienta a ukazují výsledek zpracování požadavku. Jsou rozděleny podle první číslice:

  • 1xx (Informativní): Požadavek přijat, pokračuje zpracování.
  • 2xx (Úspěšný): Požadavek byl úspěšně přijat, pochopen a akceptován.
  • 3xx (Přesměrování): Pro dokončení požadavku jsou potřeba další akce.
  • 4xx (Chyba klienta): Požadavek obsahuje syntaktickou chybu nebo nemůže být proveden.
  • 5xx (Chyba serveru): Server nemohl správně zpracovat správně naformátovaný požadavek.

Příklady nejčastějších kódů:

Kód Kategorie Hodnota Popis
100 Informativní Pokračovat Server obdržel počáteční část požadavku
200 Úspěšný OK Požadavek byl úspěšně proveden
201 Úspěšný Vytvořeno Požadavek byl proveden, byl vytvořen nový zdroj
204 Úspěšný Bez obsahu Požadavek byl proveden, odpověď neobsahuje tělo
301 Přesměrování Trvale přemístěno Zdroj byl trvale přesunut
302 Přesměrování Dočasně přesunuto Zdroj byl dočasně přesunut
304 Přesměrování Neměnilo se Zdroj se od posledního požadavku nezměnil
400 Chyba klienta Špatný požadavek Neplatná syntaxe požadavku
401 Chyba klienta Neautorizováno Vyžaduje se autentizace
403 Chyba klienta Zakázáno Přístup ke zdroji je zakázán
404 Chyba klienta Nenalezeno Zdroj na uvedené URL nebyl nalezen
405 Chyba klienta Metoda není povolena Použitá metoda HTTP není povolena
500 Chyba serveru Vnitřní chyba serveru Vnitřní chyba serveru
502 Chyba serveru Špatný brána Neplatná odpověď od nadřazeného serveru
503 Chyba serveru Služba nedostupná Server je dočasně nedostupný

Znalost kódů stavu pomáhá pochopit příčinu chyby, odladit požadavky a určit úspěšnost jejich provedení. Často se používají v automatizovaném testování k ověření očekávaného výsledku API požadavků.

import requests

url = "https://jsonplaceholder.typicode.com/posts/1"
response = requests.get(url)

# Kontrola, zda je kód stavu úspěšný (200 OK)
if response.status_code == 200:
    print("GET požadavek byl úspěšný")
else:
    print(f"Chyba GET požadavku: kód stavu {response.status_code}")

url_not_found = "https://jsonplaceholder.typicode.com/nonexistent"
response_not_found = requests.get(url_not_found)

# Kontrola, zda kód stavu indikuje nenalezený zdroj (404 Not Found)
if response_not_found.status_code == 404:
    print("Zdroj nenalezen (očekávané chování)")
else:
    print(f"Nečekaný kód stavu: {response_not_found.status_code}")