Junior
Rozprávaj o stavových kódoch HTTP.
sobes.tech AI
Odpoveď od AI
Kódy stavu HTTP sú trojmiestne čísla, ktoré server vracia ako odpoveď na požiadavku klienta a ukazujú výsledok spracovania požiadavky. Sú rozdelené podľa prvého čísla:
- 1xx (Informačné): Požiadavka bola prijatá, spracovanie pokračuje.
- 2xx (Úspešné): Požiadavka bola úspešne prijatá, pochopená a akceptovaná.
- 3xx (Presmerovanie): Na dokončenie požiadavky sú potrebné ďalšie kroky.
- 4xx (Chyba klienta): Požiadavka obsahuje syntaktickú chybu alebo nemôže byť vykonaná.
- 5xx (Chyba servera): Server nemohol správne vykonať správne naformátovanú požiadavku.
Príklady najčastejšie sa vyskytujúcich kódov:
| Kód | Kategória | Hodnota | Popis |
|---|---|---|---|
| 100 | Informačný | Pokračovať | Server obdržal počiatočnú časť požiadavky |
| 200 | Úspešný | OK | Požiadavka bola úspešne vykonaná |
| 201 | Úspešný | Vytvorené | Požiadavka bola vykonaná, bol vytvorený nový zdroj |
| 204 | Úspešný | Bez obsahu | Požiadavka bola vykonaná, odpoveď neobsahuje telo |
| 301 | Presmerovanie | Trvalo presunuté | Zdroj bol trvalo presunutý |
| 302 | Presmerovanie | Dočasne presunuté | Zdroj bol dočasne presunutý |
| 304 | Presmerovanie | Nezmenené | Zdroj sa od posledného požiadavky nezmenil |
| 400 | Chyba klienta | Zlá požiadavka | Neplatná syntax požiadavky |
| 401 | Chyba klienta | Neautorizované | Vyžaduje sa autentifikácia |
| 403 | Chyba klienta | Zakázané | Prístup k zdroju je zakázaný |
| 404 | Chyba klienta | Nenašlo sa | Zdroj na uvedenej URL nebol nájdený |
| 405 | Chyba klienta | Metóda nie je povolená | Použitá metóda HTTP nie je povolená |
| 500 | Chyba servera | Interná chyba servera | Interná chyba servera |
| 502 | Chyba servera | Zlá brána | Neplatná odpoveď od nadriadeného servera |
| 503 | Chyba servera | Služba nedostupná | Server je dočasne nedostupný |
Znalosť kódov stavu pomáha pochopiť príčinu chyby, odhaliť problémy a určiť úspešnosť ich vykonania. Často sa používajú v automatizovanom testovaní na overenie očakávaného výsledku API požiadaviek.
import requests
url = "https://jsonplaceholder.typicode.com/posts/1"
response = requests.get(url)
# Kontrola, či je kód stavu úspešný (200 OK)
if response.status_code == 200:
print("Úspešný GET požiadavok")
else:
print(f"Chyba pri GET požiadavku: kód stavu {response.status_code}")
url_not_found = "https://jsonplaceholder.typicode.com/nonexistent"
response_not_found = requests.get(url_not_found)
# Kontrola, či kód stavu indikuje nenájdený zdroj (404 Not Found)
if response_not_found.status_code == 404:
print("Zdroj nebol nájdený (očakávané správanie)")
else:
print(f"Neočakávaný kód stavu: {response_not_found.status_code}")