Sobes.tech
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}")