Sobes.tech
Junior

Какви са HTTP кодовете за отговор и как се различават помежду си?

sobes.tech AI

Отговор от AI

Кодовете за отговор на HTTP са триизрични числа, които сървърът връща като отговор на заявка от клиента. Те показват статуса на обработката на заявката и предоставят информация дали е успешно завършена, дали е възникнала грешка или дали е необходима допълнителна дейност.

Кодовете са разделени в пет класа:

  • 1xx (Информационни): Заявката е приета, обработката продължава.
  • 2xx (Успешни): Заявката е успешно получена, разбрана и обработена.
  • 3xx (Пренасочвания): Клиентът трябва да предприеме допълнителни действия за завършване на заявката.
  • 4xx (Грешки на клиента): Заявката съдържа синтактична грешка или не може да бъде обработена.
  • 5xx (Грешки на сървъра): Сървърът не можа да изпълни заявката.

Разликите между кодовете се крият в тяхната семантика, свързана с различните етапи на обработка на заявката и възможните резултати.

Примери за често използвани кодове:

Код Описание Клас
200 OK Успешни
201 Създадено Успешни
301 Постоянно преместено Пренасочвания
302 Намерено Пренасочвания
400 Невалидна заявка Грешки на клиента
401 Неоторизиран Грешки на клиента
403 Забранено Грешки на клиента
404 Не е намерено Грешки на клиента
500 Вътрешна грешка на сървъра Грешки на сървъра
503 Услугата не е налична Грешки на сървъра
// Пример за обработка на HTTP отговор в JavaScript
fetch('/api/data')
  .then(response => {
    if (response.ok) { // Проверка за успешен статус (2xx)
      return response.json();
    } else {
      // Обработка на грешки въз основа на кода на статуса
      console.error(`HTTP грешка: ${response.status}`);
      if (response.status === 404) {
        console.error('Ресурсът не е намерен.');
      }
      throw new Error(`HTTP грешка: ${response.status}`);
    }
  })
  .then(data => {
    console.log('Получени данни:', data);
  })
  .catch(error => {
    console.error('Грешка при зареждане на данните:', error);
  });