Junior
Kas yra HTTP atsakymo kodai ir kuo jie skiriasi vienas nuo kito?
sobes.tech AI
Atsakymas iš AI
HTTP atsako kodai — tai trijų skaitmenų skaičiai, kuriuos serveris grąžina kaip atsaką į kliento užklausą. Jie nurodo užklausos apdorojimo būseną ir suteikia informaciją apie tai, ar užklausa sėkmingai įvykdyta, ar įvyko klaida, ar reikalingas papildomas veiksmas.
Kodai skirstomi į penkis klases:
- 1xx (Informaciniai): Užklausa priimta, apdorojimas tęsiasi.
- 2xx (Sėkmingi): Užklausa sėkmingai gauta, suprasta ir apdorota.
- 3xx (Peradresavimai): Klientui reikia atlikti papildomus veiksmus užbaigti užklausą.
- 4xx (Kliento klaidos): Užklausa turi sintaksės klaidą arba jos įvykdyti negalima.
- 5xx (Serverio klaidos): Serveris nesugebėjo įvykdyti užklausos.
Skirtumai tarp kodų yra jų semantikoje, susijusioje su skirtingais užklausos apdorojimo etapais ir galimais rezultatais.
Dažnai naudojami kodų pavyzdžiai:
| Kodas | Aprašymas | Klasė |
|---|---|---|
| 200 | Gerai | Sėkmingi |
| 201 | Sukurta | Sėkmingi |
| 301 | Laikinas perkėlimas | Peradresavimai |
| 302 | Rasta | Peradresavimai |
| 400 | Bloga užklausa | Kliento klaidos |
| 401 | Neautorizuota | Kliento klaidos |
| 403 | Draudžiama | Kliento klaidos |
| 404 | Nerasta | Kliento klaidos |
| 500 | Vidaus serverio klaida | Serverio klaidos |
| 503 | Paslauga nepasiekiama | Serverio klaidos |
// HTTP atsako apdorojimo pavyzdys JavaScript'e
fetch('/api/data')
.then(response => {
if (response.ok) { // Sėkmingo statuso (2xx) patikrinimas
return response.json();
} else {
// Klaidų apdorojimas pagal statuso kodą
console.error(`HTTP klaida: ${response.status}`);
if (response.status === 404) {
console.error('Išteklis nerastas.');
}
throw new Error(`HTTP klaida: ${response.status}`);
}
})
.then(data => {
console.log('Gauti duomenys:', data);
})
.catch(error => {
console.error('Krovimo klaida:', error);
});