Junior
Šta su HTTP kodovi odgovora i u čemu se razlikuju jedni od drugih?
sobes.tech АИ
Одговор од АИ
HTTP kodovi odgovora su trocifreni brojevi koje server vraća kao odgovor na zahtev klijenta. Oni ukazuju na status obrade zahteva i pružaju informacije o tome da li je uspešno završen, da li je došlo do greške ili je potrebna dodatna akcija.
Kodovi su podeljeni u pet klasa:
- 1xx (Informativni): Zahtev je prihvaćen, obrada se nastavlja.
- 2xx (Uspešni): Zahtev je uspešno primljen, shvaćen i obrađen.
- 3xx (Preusmeravanja): Klijent mora da preduzme dodatne radnje za završetak zahteva.
- 4xx (Greške klijenta): Zahtev sadrži sintaksnu grešku ili ne može biti obrađen.
- 5xx (Greške servera): Server nije uspeo da izvrši zahtev.
Razlike između kodova leže u njihovoj semantici, koja se odnosi na različite faze obrade zahteva i moguće ishode.
Primeri često korišćenih kodova:
| Kod | Opis | Klasa |
|---|---|---|
| 200 | U redu | Uspešni |
| 201 | Kreirano | Uspešni |
| 301 | Trajno premešteno | Preusmeravanja |
| 302 | Nađeno | Preusmeravanja |
| 400 | Loš zahtev | Greške klijenta |
| 401 | Nije autorizovano | Greške klijenta |
| 403 | Zabranjeno | Greške klijenta |
| 404 | Nije pronađeno | Greške klijenta |
| 500 | Interna greška servera | Greške servera |
| 503 | Usluga nedostupna | Greške servera |
// Primer obrade HTTP odgovora u JavaScript-u
fetch('/api/data')
.then(response => {
if (response.ok) { // Provera uspešnog statusa (2xx)
return response.json();
} else {
// Obrada grešaka na osnovu koda statusa
console.error(`HTTP greška: ${response.status}`);
if (response.status === 404) {
console.error('Resurs nije pronađen.');
}
throw new Error(`HTTP greška: ${response.status}`);
}
})
.then(data => {
console.log('Primljeni podaci:', data);
})
.catch(error => {
console.error('Greška pri učitavanju podataka:', error);
});