← Назад ко всем вопросам

Классы статус-кодов HTTP

1️⃣ Как кратко ответить

HTTP статус-коды делятся на пять классов: 1xx (информационные), 2xx (успешные), 3xx (перенаправления), 4xx (ошибки клиента), 5xx (ошибки сервера). Каждый класс указывает на тип ответа сервера на запрос клиента.

2️⃣ Подробное объяснение темы

HTTP статус-коды — это трехзначные числа, которые сервер возвращает в ответ на HTTP-запрос клиента. Они помогают клиенту понять, как сервер обработал запрос. Эти коды делятся на пять классов, каждый из которых обозначает определенный тип ответа.

1xx: Информационные

Коды этого класса указывают, что запрос был получен и процесс продолжается. Они редко используются в практике, но могут быть полезны для указания промежуточного состояния.

  • 100 Continue: Клиент может продолжать отправку запроса.
  • 101 Switching Protocols: Сервер согласен на изменение протокола, как запрашивалось клиентом.

2xx: Успешные

Эти коды означают, что запрос клиента был успешно принят, понят и обработан.

  • 200 OK: Запрос успешно выполнен. Это самый распространенный код.
  • 201 Created: Запрос привел к созданию нового ресурса.
  • 204 No Content: Запрос успешно выполнен, но в ответе нет содержимого.

3xx: Перенаправления

Коды этого класса указывают, что клиент должен предпринять дополнительные действия для завершения запроса.

  • 301 Moved Permanently: Запрашиваемый ресурс был перемещен на новый постоянный URL.
  • 302 Found: Ресурс временно находится по другому URL.
  • 304 Not Modified: Ресурс не изменялся с момента последнего запроса.

4xx: Ошибки клиента

Эти коды указывают на ошибки, вызванные клиентом. Они означают, что запрос содержит неверный синтаксис или не может быть выполнен.

  • 400 Bad Request: Сервер не может обработать запрос из-за ошибки клиента.
  • 401 Unauthorized: Для доступа к ресурсу требуется аутентификация.
  • 404 Not Found: Запрашиваемый ресурс не найден на сервере.

5xx: Ошибки сервера

Коды этого класса указывают на ошибки сервера. Они означают, что сервер не смог выполнить запрос.

  • 500 Internal Server Error: Общая ошибка сервера, когда он не может обработать запрос.
  • 502 Bad Gateway: Сервер, действующий как шлюз или прокси, получил недопустимый ответ от вышестоящего сервера.
  • 503 Service Unavailable: Сервер временно не может обработать запрос из-за перегрузки или обслуживания.

Пример использования

Когда вы отправляете запрос на сервер, например, через браузер, сервер возвращает один из этих кодов, чтобы сообщить о результате обработки запроса. Например, если вы запрашиваете страницу, которая существует, сервер вернет код 200. Если страница не существует, вы получите код 404.

fetch('https://example.com/api/data')
  .then(response => {
    if (response.status === 200) {
      // Запрос успешен, обрабатываем данные
      return response.json();
    } else if (response.status === 404) {
      // Ресурс не найден
      console.error('Resource not found');
    } else {
      // Обработка других кодов
      console.error('Unexpected response code:', response.status);
    }
  })
  .catch(error => {
    // Обработка ошибок сети
    console.error('Network error:', error);
  });
  • fetch('https://example.com/api/data'): Отправляет HTTP-запрос на указанный URL.
  • .then(response => { ... }): Обрабатывает ответ от сервера.
  • if (response.status === 200): Проверяет, успешен ли запрос.
  • return response.json(): Если успешен, преобразует ответ в JSON.
  • else if (response.status === 404): Проверяет, не найден ли ресурс.
  • console.error('Resource not found'): Логирует ошибку, если ресурс не найден.
  • .catch(error => { ... }): Обрабатывает ошибки сети, если они возникли.

Тема: HTTP, REST
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки