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