Коды состояния HTTP
Когда посетитель заходит на веб-страницу, его браузер отправляет запрос на сервер, на котором размещена веб-страница. Прежде чем браузер получит и отобразит веб-страницу, сервер, на котором размещена веб-страница, возвращает браузеру информационный заголовок (заголовок сервера), содержащий код состояния HTTP, в ответ на запрос браузера.
Английское название кода состояния HTTP —HTTP Status Code。
Ниже приведены распространённые коды состояния HTTP:
- 1xx (информационные коды состояния): означает, что полученный запрос обрабатывается.
- 2xx (успешные коды состояния): означает, что запрос был обработан нормально.
- 3xx (Коды состояния перенаправления): Для завершения этого запроса требуются дальнейшие операции.
- 4xx (Коды состояния ошибки клиента): Указывает, что запрос содержит синтаксическую ошибку или не может быть выполнен.
- 5xx (Коды состояния ошибки сервера): Указывает, что сервер столкнулся с ошибкой при обработке запроса.
Классификация кодов состояния HTTP
Коды состояния HTTP состоят из трёх десятичных цифр, и первая десятичная цифра определяет тип кода состояния. Ответы делятся на пять категорий: информационные ответы (100–199), успешные ответы (200–299), перенаправления (300–399), ошибки клиента (400–499) и ошибки сервера (500–599):
| Категория | Описание категории |
|---|---|
| 1** | Информационный — сервер получил запрос и требует, чтобы запрашивающая сторона продолжила выполнение операции. |
| 2** | Успешный — операция была успешно получена и обработана. |
| 3** | Перенаправление — для завершения запроса требуются дальнейшие операции. |
| 4** | Ошибка клиента — запрос содержит синтаксическую ошибку или не может быть выполнен. |
| 5** | Ошибка сервера — сервер столкнулся с ошибкой при обработке запроса. |
Список кодов состояния HTTP:
| Код состояния | Название кода состояния на английском языке | Описание на китайском языке |
|---|---|---|
| 100 | Continue | Продолжение. Клиент должен продолжить свой запрос. |
| 101 | Переключение протоколов | Переключение протоколов. Сервер переключает протоколы согласно запросу клиента. Сервер может переключиться только на протокол более высокого уровня, например на новую версию протокола HTTP. |
| 200 | ОК | Запрос выполнен успешно. Обычно используется для запросов GET и POST. |
| 201 | Создано | Создано. Запрос выполнен успешно, и был создан новый ресурс. |
| 202 | Принято | Принято. Запрос был принят, но обработка ещё не завершена. |
| 203 | Неавторитетная информация | Неавторитетная информация. Запрос выполнен успешно. Однако возвращённая метаинформация получена не от исходного сервера, а от копии. |
| 204 | Нет содержимого | Нет содержимого. Сервер успешно обработал запрос, но не вернул содержимое. Без обновления веб-страницы это гарантирует, что браузер продолжит отображать текущий документ. |
| 205 | Сброс содержимого | Сброс содержимого. Сервер успешно обработал запрос, и терминал пользователя (например, браузер) должен сбросить представление документа. Этот код возврата можно использовать для очистки полей формы браузера. |
| 206 | Частичное содержимое | Частичное содержимое. Сервер успешно обработал частичный GET-запрос. |
| 300 | Множественный выбор | Множественный выбор. Запрашиваемый ресурс может быть доступен в нескольких местоположениях. Может быть возвращён список характеристик и адресов ресурса, чтобы терминал пользователя (например, браузер) мог из него выбрать. |
| 301 | Перемещено навсегда | Перемещено навсегда. Запрашиваемый ресурс был навсегда перемещён на новый URI. Возвращаемая информация включает новый URI, и браузер автоматически перенаправится на новый URI. Любые новые запросы в будущем должны использовать новый URI вместо старого. |
| 302 | Найдено | Временно перемещено. Аналогично 301. Но ресурс перемещён только временно. Клиент должен продолжать использовать исходный URI. |
| 303 | Смотрите другое | Смотрите другое. Аналогично 301. Для просмотра используйте GET- и POST-запросы. |
| 304 | Не изменено | Не изменено. Запрошенный ресурс не был изменён. Когда сервер возвращает этот код состояния, он не возвращает никаких ресурсов. Клиенты обычно кэшируют запрошенные ресурсы и предоставляют заголовок, указывающий, что клиент хочет, чтобы возвращались только ресурсы, изменённые после указанной даты. |
| 305 | Использовать прокси | Использовать прокси. Доступ к запрошенному ресурсу должен осуществляться через прокси-сервер. |
| 306 | Не используется | Устаревший код состояния HTTP |
| 307 | Временное перенаправление | Временное перенаправление. Аналогично 302. Перенаправление с использованием GET-запроса. |
| 400 | Некорректный запрос | Клиентский запрос содержит синтаксическую ошибку, которую сервер не может понять. |
| 401 | Не авторизован | Запрос требует аутентификации пользователя. |
| 402 | Требуется оплата | Зарезервировано для будущего использования. |
| 403 | Запрещено | Сервер понимает запрос клиента, но отказывается его выполнять. |
| 404 | Не найдено | Сервер не может найти ресурс (веб-страницу) по запросу клиента. С помощью этого кода разработчики сайтов могут настроить собственную страницу с сообщением "Запрашиваемый ресурс не найден". |
| 405 | Метод не разрешён | Метод в запросе клиента запрещён. |
| 406 | Неприемлемо | Сервер не может выполнить запрос на основе характеристик содержимого запроса клиента. |
| 407 | Требуется аутентификация прокси | Запрос требует аутентификации на прокси-сервере. Аналогично 401, но запрашивающий должен использовать прокси для авторизации. |
| 408 | Время ожидания запроса истекло | Сервер слишком долго ждал, пока клиент отправит запрос, и время ожидания истекло. |
| 409 | Конфликт | Сервер может вернуть этот код при завершении PUT-запроса клиента. При обработке запроса сервером возник конфликт. |
| 410 | Удалён | Ресурс, запрошенный клиентом, больше не существует. Код 410 отличается от 404. Если ресурс существовал ранее, но был безвозвратно удалён, можно использовать код 410. Веб-дизайнеры могут использовать код 301, чтобы указать новое расположение ресурса. |
| 411 | Требуется длина | Сервер не может обработать информацию запроса, отправленную клиентом, без Content-Length. |
| 412 | Предварительное условие не выполнено | Предварительные условия в информации запроса клиента неверны. |
| 413 | Сущность запроса слишком велика | Поскольку сущность запроса слишком велика, сервер не может её обработать и поэтому отклоняет запрос. Чтобы предотвратить постоянные запросы от клиента, сервер может закрыть соединение. Если сервер лишь временно не может обработать запрос, будет включён заголовок ответа Retry-After. |
| 414 | Request-URI слишком длинный | Запрошенный URI слишком длинный (URI обычно является URL), и сервер не может его обработать. |
| 415 | Неподдерживаемый тип медиа | Сервер не может обработать медиаформат, прилагаемый к запросу. |
| 416 | Запрошенный диапазон не может быть удовлетворён | Диапазон, запрошенный клиентом, недопустим. |
| 417 | Ожидание не выполнено (ожидаемый сбой) | Сервер не может обеспечить ожидаемое поведение, указанное в поле Expect заголовка запроса. |
| 418 | Я — чайник | Код состояния 418 на самом деле является первоапрельской шуткой. Он определён в RFC 2324 — шуточном документе о протоколе Hyper Text Coffee Pot Control Protocol (HTCPCP). В этой шутке код состояния 418 был добавлен в протокол HTTP в качестве шутки. |
| 500 | Внутренняя ошибка сервера | Внутренняя ошибка сервера, невозможно выполнить запрос. |
| 501 | Не реализовано | Сервер не поддерживает запрошенную функциональность и не может выполнить запрос. |
| 502 | Плохой шлюз | Когда сервер, выступающий в роли шлюза или прокси, пытается выполнить запрос, он получает неверный ответ от удалённого сервера. |
| 503 | Сервис недоступен | Из-за перегрузки или системного обслуживания сервер временно не может обработать запрос клиента. Продолжительность задержки может быть указана в информации заголовка Retry-After сервера. |
| 504 | Тайм-аут шлюза | Сервер, действующий как шлюз или прокси, не получил запрос от вышестоящего сервера вовремя. |
| 505 | Версия HTTP не поддерживается | Сервер не поддерживает версию протокола HTTP, использованную в запросе, и не может завершить обработку. |