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);
});