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}")