Sobes.tech
Junior

Czym są kody odpowiedzi HTTP i na czym polega ich różnica?

sobes.tech AI

Odpowiedź od AI

Kody odpowiedzi HTTP to trzycyfrowe liczby zwracane przez serwer w odpowiedzi na żądanie klienta. Wskazują one status przetwarzania żądania i dostarczają informacji o tym, czy zostało ono pomyślnie wykonane, czy wystąpił błąd lub czy wymagana jest dodatkowa akcja.

Kody dzielą się na pięć klas:

  • 1xx (Informacyjne): Żądanie zostało przyjęte, przetwarzanie trwa dalej.
  • 2xx (Sukces): Żądanie zostało pomyślnie odebrane, zrozumiane i przetworzone.
  • 3xx (Przekierowania): Klient musi podjąć dalsze działania, aby zakończyć żądanie.
  • 4xx (Błędy klienta): Żądanie zawiera błąd składni lub nie może zostać przetworzone.
  • 5xx (Błędy serwera): Serwer nie mógł wykonać żądania.

Różnice między kodami dotyczą ich semantyki, związanej z różnymi etapami przetwarzania żądania i możliwymi wynikami.

Przykłady często używanych kodów:

Kod Opis Klasa
200 OK Sukces
201 Utworzono Sukces
301 Trwałe przeniesienie Przekierowania
302 Znaleziono Przekierowania
400 Nieprawidłowe żądanie Błędy klienta
401 Nieautoryzowany Błędy klienta
403 Zabronione Błędy klienta
404 Nie znaleziono Błędy klienta
500 Błąd wewnętrzny serwera Błędy serwera
503 Usługa niedostępna Błędy serwera
// Przykład obsługi odpowiedzi HTTP w JavaScript
fetch('/api/data')
  .then(response => {
    if (response.ok) { // Sprawdzenie na sukces (2xx)
      return response.json();
    } else {
      // Obsługa błędów na podstawie kodu statusu
      console.error(`Błąd HTTP: ${response.status}`);
      if (response.status === 404) {
        console.error('Zasób nie został znaleziony.');
      }
      throw new Error(`Błąd HTTP: ${response.status}`);
    }
  })
  .then(data => {
    console.log('Odebrane dane:', data);
  })
  .catch(error => {
    console.error('Błąd podczas ładowania danych:', error);
  });