Junior
Povedzte mi o kódoch stavu HTTP.
sobes.tech AI
Odpoveď od AI
Kódy stavu HTTP sú štandardné trojmiestne čísla, ktoré server vracia ako odpoveď na požiadavku klienta. Ukazujú výsledok spracovania požiadavky.
Kategórie kódov stavu:
- 1xx (Informačné): Server prijal požiadavku a pokračuje v procese.
- 2xx (Úspech): Požiadavka bola úspešne spracovaná.
- 3xx (Presmerovanie): Vyžaduje sa ďalšia akcia na vykonanie požiadavky.
- 4xx (Chyba klienta): Požiadavka obsahuje syntaktickú chybu alebo nemôže byť spracovaná.
- 5xx (Chyba servera): Server nemohol požiadavku splniť, hoci bola platná.
Často používané kódy stavu:
| Kód | Názov | Popis |
|---|---|---|
| 200 | OK | Požiadavka bola úspešne spracovaná. |
| 201 | Created | Zdroj bol úspešne vytvorený. |
| 204 | No Content | Požiadavka bola úspešne spracovaná, odpoveď neobsahuje telo. |
| 301 | Moved Permanently | Zdroj bol trvalo presunutý na nový URL. |
| 302 | Found | Zdroj je dočasne dostupný na inom URL. |
| 304 | Not Modified | Zdroj sa od poslednej požiadavky nezmenil. |
| 400 | Bad Request | Server nemohol pochopiť požiadavku kvôli nesprávnej syntaxi. |
| 401 | Unauthorized | Vyžaduje sa overenie. |
| 403 | Forbidden | Prístup k zdroju je zakázaný. |
| 404 | Not Found | Hľadaný zdroj nebol nájdený. |
| 405 | Method Not Allowed | Metóda HTTP použitá v požiadavke nie je povolená pre zdroj. |
| 409 | Conflict | Konflikt pri spracovaní požiadavky, napríklad vytváranie existujúceho zdroja. |
| 422 | Unprocessable Entity | Syntakticky správna požiadavka, ale semanticky nesprávna. |
| 500 | Internal Server Error | Vnútorná chyba servera. |
| 501 | Not Implemented | Server nepodporuje funkciu potrebnú na vykonanie požiadavky. |
| 503 | Service Unavailable | Server je dočasne nedostupný. |
Počas testovania API sú kódy stavu kľúčové indikátory úspešnosti alebo neúspešnosti testu. Kontrola správneho kódu stavu pre každý typ požiadavky (GET, POST, PUT, DELETE atď.) v rôznych scenároch (úspech, chyba validácie, absencia zdroja, autorizácia) je základom funkčného testovania API.
Napríklad, pri vytváraní nového zdroja (POST požiadavka) sa očakáva kód 201 Created, pri získavaní neexistujúceho zdroja (GET požiadavka) - 404 Not Found.
import requests
# Príklad kontroly kódu stavu pri úspešnej požiadavke
response = requests.get('https://jsonplaceholder.typicode.com/posts/1')
# Očakávame kód 200 OK
assert response.status_code == 200
# Príklad kontroly kódu stavu pri neexistujúcom zdroji
response_not_found = requests.get('https://jsonplaceholder.typicode.com/posts/9999')
# Očakávame kód 404 Not Found
assert response_not_found.status_code == 404