Каждый HTTP-ответ имеет код состояния, который сигнализирует четкой числовой информацией о том, как запрос был обработан.
Код состояния HTTP - это первая строка в HTTP-ответе, который отправляется с сервера клиенту.
Этот список будет полезен, если вы пытаетесь выяснить, почему сервер отправил определенный код состояния, и посмотреть, что это означает, или если вы создаете сервер и ищете идеальный код состояния для возврата.
Коды состояния выражаются трехзначными числами и кратким описанием.
Первая цифра номера обозначаетгруппа ответа.
Всего 5 групп:
1xx
: информационный ответ - указывает, что запрос был получен и понят2xx
: успешный ответ - указывает, что действие, запрошенное клиентом, было получено, понято и принято3xx
: redirection - указывает, что клиент должен предпринять дополнительные действия для выполнения запроса4xx
: ошибка клиента - указывает на то, что произошла ошибка, которая, похоже, была вызвана клиентом5xx
: ошибка сервера - указывает, что на сервере произошла ошибка
В оставшейся части сообщения я перечисляю все полезные коды статуса.
(Я удалил некоторые технологические, такие как WebDAV, а те, которые используются очень редко)
Информационные ответы
Код состояния | Описание |
---|---|
100 Продолжить | Сервер получил заголовки запроса, и клиент должен перейти к отправке тела запроса (в случае запроса, для которого необходимо отправить тело; например, запрос POST). Отправка большого тела запроса на сервер после того, как запрос был отклонен из-за несоответствующих заголовков, будет неэффективен. Чтобы сервер проверил заголовки запроса, клиент должен отправить Expect: 100-continue в качестве заголовка в своем первоначальном запросе и получить в ответ код состояния 100 Continue перед отправкой тела. Если клиент получает код ошибки, такой как 403 (Запрещено) или 405 (Метод запрещен), он не должен отправлять тело запроса. Ответ 417 Expectation Failed указывает на то, что запрос следует повторить без заголовка Expect, поскольку он указывает, что сервер не поддерживает ожидания (например, в случае серверов HTTP / 1.0). |
101 протокол переключения | Клиент попросил сервер переключить протоколы, и сервер согласился сделать это.См. RFC 7231 # 6.2.2. |
Успешные ответы
Код состояния | Описание |
---|---|
200 ОК | Это стандартный ответ для успешных HTTP-запросов. |
201 Создано | Обычно это ответ на запрос POST. Запрос был выполнен, и новый ресурс был создан. |
202 Принято | Запрос принят в обработку. Ничего не сказано о фактической обработке и ее результате, которая может происходить на отдельном сервере или группироваться. |
203 Неавторизованная информация | Исходный сервер вернул 200, а преобразующий прокси между клиентом и сервером изменил полезную нагрузку. |
204 Нет содержимого | Сервер успешно обработал запрос, но не возвращает никакого содержимого. |
205 Сбросить содержимое | Сервер успешно обработал запрос, но не возвращает никакого содержимого. Аналогичен ответу 204, но сервер требует, чтобы клиент сбросил представление документа (например, используется для очистки форм) |
206 Частичное содержимое | В ответ наRange запрос, поступающий от клиента, сервер отправляет частичный ответ содержимого.See RFC 7233#4.1 |
Перенаправление
Код состояния | Описание |
---|---|
301 перемещен навсегда | Этот и все будущие запросы должны быть направлены на указанный URI. Используйте только с запросами GET / HEAD и308 Permanent Redirect для всех остальных методов. |
302 Найдено | Ресурс временно перемещен по URL-адресу, указанному вLocation заголовок. Используйте только с запросами GET / HEAD и307 Temporary Redirect для всех остальных методов. |
303 См. Другое | После запроса POST или PUT указывает на подтверждающее сообщение вLocation заголовок, доступный с помощью нового запроса GET. |
304 Не изменено | Когда клиент использует заголовки запросаIf-Modified-Since или жеIf-None-Match , этот код состояния ответа указывает, что ресурс не был изменен. |
307 Временное перенаправление | Подобно302 запрос, за исключением того, что он не позволяет изменить метод HTTP |
308 постоянное перенаправление | Подобно301 запрос, за исключением того, что он не позволяет изменить метод HTTP |
Ошибки клиента
Код состояния | Описание |
---|---|
ошибка 400, неверный запрос | Из-за ошибки запроса, сгенерированной на клиенте, сервер не может обработать запрос. Ошибки могут включать в себя неправильный запрос, слишком большой размер для обработки и другие. |
401 Неавторизованный | Отправляется, когда требуется аутентификация и клиент не авторизован |
403 Запрещено | Ресурс недоступен по разным причинам. Если причина в аутентификации, предпочтите401 Unauthorized код состояния. |
404 Не Найдено | Запрошенный ресурс не может быть найден. |
405 Метод запрещен | Ресурс недоступен с помощью этого метода HTTP, но может быть с другим. |
406 неприемлемо | Клиент сдалAccept заголовок со значениями, несовместимыми с сервером. |
407 Требуется проверка подлинности прокси | Между клиентом и сервером есть прокси, который требует аутентификации. |
408 Тайм-аут запроса | Время ожидания запроса на сервере истекло. |
409 Конфликт | Указывает, что запрос не может быть обработан из-за конфликта в текущем состоянии ресурса, такого как конфликт редактирования между несколькими одновременными обновлениями. |
410 ушел | Ресурс больше не доступен и больше не будет доступен. Например, более мощный, чем 404, поисковые системы интерпретируют его как указание на удаление этого ресурса из своего индекса. |
411 Требуемая длина | Клиенту необходимо добавить в запрос заголовок Content-Length, и это было необходимо. |
412 Ошибка предварительного условия | Возвращается, если клиент отправилIf-Unmodified-Since или жеIf-None-Match заголовок запроса, и сервер не может удовлетворить это условие. |
413 Payload Too Large (Слишком большая полезная нагрузка) | Запрос больше, чем сервер хочет или может обработать. |
414 URI слишком длинный | Предоставленный URI слишком длинный для обработки сервером. |
415 Неподдерживаемый тип носителя | Объект запроса имеет тип мультимедиа, который сервер или ресурс не поддерживает. |
416 Range Not Satisfiable (диапазон не соответствует требованиям) | Клиент запросил часть файла, используяRange заголовок, но сервер не может предоставить эту часть. |
417 Ожидание не выполнено | Сервер не может соответствовать требованиямExpect заголовок запроса. |
421 неправильно направленный запрос | Запрос был направлен на сервер, который не может дать ответ (например, из-за повторного использования соединения). |
426 Требуется обновление | Клиент должен переключиться на другой протокол, такой как TLS / 1.0, указанный вUpgrade поле заголовка. |
428 Требуется предварительное условие | Сервер требует, чтобы запрос содержалIf-Match заголовок. |
429 Too Many Requests (Слишком много запросов) | Пользователь отправил слишком много запросов за заданный промежуток времени. Используется для ограничения скорости. |
431 Слишком большие поля заголовка запроса | Запрос не может быть выполнен, потому что один или несколько заголовков или весь набор заголовков слишком велик. |
451 Недоступно по юридическим причинам | Ресурс недоступен по юридическим причинам |
Ошибки сервера
Код состояния | Описание |
---|---|
внутренняя ошибка сервера 500 | Общее сообщение об ошибке сервера, которое выдается, когда возникла непредвиденная ситуация, и более конкретное сообщение не подходит. |
501 Не реализовано | Сервер либо не распознает метод запроса, либо не может выполнить запрос. |
502 Неверный шлюз | Сервер действовал как шлюз или прокси и получил недопустимый ответ от вышестоящего сервера. |
сервис 503 недоступен | Сервер в настоящее время временно недоступен (потому что он перегружен или отключен для обслуживания). |
Ошибка 504 Время ответа сервера истекло | Сервер действовал как шлюз или прокси и не получил своевременного ответа от вышестоящего сервера. |
505 Версия HTTP не поддерживается | Сервер не поддерживает версию протокола HTTP, указанную в запросе. |
Дополнительные уроки по сети:
- Введение в WebSockets
- Как работают HTTP-запросы
- Список заголовков HTTP-запросов
- Список заголовков HTTP-ответа
- HTTP против HTTPS
- Что такое RFC?
- Протокол HTTP
- Протокол HTTPS
- Руководство curl по HTTP-запросам
- Кеширование в HTTP
- Список кодов состояния HTTP
- Что такое CDN?
- Протокол HTTP / 2
- Что такое порт
- DNS, система доменных имен
- Протокол TCP
- Протокол UDP
- Введение в REST API
- Как установить локальный сертификат SSL в macOS
- Как сгенерировать локальный сертификат SSL
- Как настроить Nginx для HTTPS
- Простой обратный прокси-сервер nginx для обслуживания нескольких приложений Node.js из подпапок
- Что такое обратный прокси?