HTTP
Коды статуса HTTP
Поиск…
Вступление
В HTTP коды состояния являются машиночитаемым механизмом, указывающим результат ранее выданного запроса. Из RFC 7231, сек. 6 : «Элемент состояния-кода представляет собой трехзначный целочисленный код, дающий результат попытки понять и удовлетворить запрос».
Формальная грамматика позволяет кодам быть чем угодно между 000
и 999
. Однако только значение диапазона от 100
до 599
присваивало значение.
замечания
HTTP / 1.1 определяет число числовых кодов состояния HTTP, которые отображаются в строке состояния - первой строке ответа HTTP - чтобы суммировать то, что клиент должен делать с ответом.
Первая цифра кодов состояния определяет класс ответа:
-
1xx
Информационный -
2xx
Клиентский запрос успешно -
3xx
Запрос перенаправлен - необходимы дальнейшие действия, например новый запрос - Ошибка
4xx
Client - не повторяйте один и тот же запрос - Ошибка сервера
5xx
- возможно, повторите попытку
На практике не всегда легко выбрать наиболее подходящий код состояния.
500 - внутренняя ошибка сервера
Внутренняя ошибка сервера HTTP 500 - это общее сообщение, означающее, что сервер столкнулся с чем-то неожиданным. Приложения (или общий веб-сервер) должны использовать 500, когда возникает ошибка обработки запроса - то есть генерируется исключение или условие ресурса препятствует завершению процесса.
Пример строки состояния:
HTTP/1.1 500 Internal Server Error
404 Не Найдено
HTTP 404 Not Found означает, что сервер не смог найти путь, используя URI, запрошенный клиентом.
HTTP/1.1 404 Not Found
Чаще всего запрашиваемый файл был удален, но иногда это может быть неправильная конфигурация корневого каталога или отсутствие разрешений (хотя пропускающие разрешения чаще запускают HTTP 403 Forbidden).
Например, IIS Microsoft записывает 404.0 (0 является под-статусом) в свои файлы журнала, когда запрошенный файл был удален. Но когда входящий запрос блокируется правилами фильтрации запросов, он записывает 404.5-404.19 в файлы журнала, в соответствии с которым правило блокирует запрос. Более подробную ссылку на код ошибки можно найти в Microsoft Support .
Отказ в доступе к защищенным файлам
Использовать 403 Запрещено, если клиент запросил ресурс, который недоступен из-за существующих элементов управления доступом. Например, если ваше приложение имеет маршрут /admin
который должен быть доступен только пользователям с правами администратора, вы можете использовать 403, когда обычный пользователь запрашивает страницу.
GET /admin HTTP/1.1
Host: example.com
HTTP/1.1 403 Forbidden
Успешный запрос
Отправьте ответ HTTP с кодом состояния 200
чтобы указать успешный запрос. Строка состояния ответа HTTP:
HTTP/1.1 200 OK
Текст состояния OK
является только информативным. Тело ответа (полезная нагрузка сообщения) должно содержать представление запрашиваемого ресурса. Если нет представления 201 Нет содержимого.
Отвечая на условный запрос на кешированный контент
Отправьте 304 не измененный статус ответа с сервера в ответ на запрос клиента, содержащий заголовки If-Modified-Since
и If-None-Match
, если ресурс запроса не изменился.
Например, если запрос клиента на веб-страницу включает заголовок If-Modified-Since: Fri, 22 Jul 2016 14:34:40 GMT
а с тех пор страница не была изменена, ответьте на строку состояния HTTP/1.1 304 Not Modified
.
Top 10 Код состояния HTTP
2xx Успех
- 200 OK - стандартный ответ для успешных запросов HTTP.
- 201 Создано - запрос выполнен, в результате чего создается новый ресурс.
- 204 Нет содержимого . Сервер успешно обработал запрос и не возвращает никакого содержимого.
Перенаправление 3xx
- 304 Not Modified - указывает, что ресурс не был изменен с версии, указанной заголовками запроса
If-Modified-Since
илиIf-None-Match
.
Ошибка клиента 4xx
- 400 Bad Request - сервер не может или не будет обрабатывать запрос из-за очевидной ошибки клиента (например, синтаксис неправильного запроса, слишком большой размер, неправильное обращение к сообщениям запроса или маршрутизация ложных запросов).
- 401 Несанкционированный - аналогичен Запрещенному 403 , но специально для использования, когда требуется аутентификация, и не удалось или еще не предоставлено. Ответ должен включать поле заголовка
WWW-Authenticate
содержащее вызов, применимый к запрашиваемому ресурсу. - 403 Запрещено - запрос был действительным запросом, но сервер отказывается отвечать на него. Пользователь может войти в систему, но не имеет необходимых разрешений для ресурса.
- 404 Not Found - запрошенный ресурс не найден, но может быть доступен в будущем. Возможны последующие запросы клиента.
- 409 Конфликт. Указывает, что запрос не может быть обработан из-за конфликта в запросе, например, в конфликте редактирования нескольких одновременных обновлений.
Ошибка сервера 5xx
- 500 Внутренняя ошибка сервера. Общее сообщение об ошибке, заданное при возникновении непредвиденного состояния и не более подходящее сообщение.