Junior
Opowiedz o kodach statusu HTTP.
sobes.tech AI
Odpowiedź od AI
Kody statusów HTTP to trzycyfrowe liczby zwracane przez serwer w odpowiedzi na żądanie klienta, wskazujące wynik przetwarzania żądania. Są klasyfikowane według pierwszej cyfry:
- 1xx (Informacyjne): Żądanie zostało przyjęte, przetwarzanie trwa dalej.
- 2xx (Sukces): Żądanie zostało pomyślnie odebrane, zrozumiane i zaakceptowane.
- 3xx (Przekierowanie): Do zakończenia żądania potrzebne są dodatkowe działania.
- 4xx (Błąd klienta): Żądanie zawiera błąd składni lub nie może zostać wykonane.
- 5xx (Błąd serwera): Serwer nie mógł poprawnie przetworzyć poprawnie sformułowanego żądania.
Przykłady najczęściej używanych kodów:
| Kod | Kategoria | Wartość | Opis |
|---|---|---|---|
| 100 | Informacyjny | Continue | Serwer otrzymał początkową część żądania |
| 200 | Sukces | OK | Żądanie zostało pomyślnie wykonane |
| 201 | Sukces | Created | Żądanie zostało wykonane, utworzono nowy zasób |
| 204 | Sukces | No Content | Żądanie zostało wykonane, odpowiedź nie zawiera ciała |
| 301 | Przekierowanie | Moved Permanently | Zasób został trwale przeniesiony |
| 302 | Przekierowanie | Found (Temporarily Moved) | Zasób został tymczasowo przeniesiony |
| 304 | Przekierowanie | Not Modified | Zasób nie zmienił się od ostatniego żądania |
| 400 | Błąd klienta | Bad Request | Niepoprawna składnia żądania |
| 401 | Błąd klienta | Unauthorized | Wymagana autoryzacja |
| 403 | Błąd klienta | Forbidden | Dostęp do zasobu jest zabroniony |
| 404 | Błąd klienta | Not Found | Zasób pod wskazanym URL nie został znaleziony |
| 405 | Błąd klienta | Method Not Allowed | Użyto niedozwolonej metody HTTP |
| 500 | Błąd serwera | Internal Server Error | Wewnętrzny błąd serwera |
| 502 | Błąd serwera | Bad Gateway | Nieprawidłowa odpowiedź od serwera nadrzędnego |
| 503 | Błąd serwera | Service Unavailable | Serwer jest tymczasowo niedostępny |
Znajomość kodów statusu pomaga zrozumieć przyczynę błędu, debugować żądania i określić ich powodzenie. W automatyzacji testów często używa się ich do sprawdzania oczekiwanych wyników zapytań API.
import requests
url = "https://jsonplaceholder.typicode.com/posts/1"
response = requests.get(url)
# Sprawdzenie kodu statusu dla sukcesu (200 OK)
if response.status_code == 200:
print("Udane zapytanie GET")
else:
print(f"Błąd zapytania GET: kod statusu {response.status_code}")
url_not_found = "https://jsonplaceholder.typicode.com/nonexistent"
response_not_found = requests.get(url_not_found)
# Sprawdzenie kodu statusu dla nieznalezionego zasobu (404 Not Found)
if response_not_found.status_code == 404:
print("Zasób nie znaleziony (oczekiwane zachowanie)")
else:
print(f"Nieoczekiwany kod statusu: {response_not_found.status_code}")