Ошибки клиента (400 — 499)

Эта группа кодов статуса HTTP означает, что запрос клиента не может быть выполнен — либо запрос ошибочный, либо на подобные запросы настройками сервера наложены ограничения. Ошибки этой группы не связаны со сбоем или перегрузкой сервера (ошибки сервера отражает группа статусов 500 – 599).

После заголовка с таким статусом (за исключением ответа на HEAD-запросы) сервер обязательно должен отправлять HTML-страницу с текстовым объяснением ситуации. Пользовательский агент (браузер) обязательно должен отображать присланную страницу. Эти статусы применимы в ответ на любой вид запроса.

400 Bad Request

Запрос не был распознан сервером из-за возможной ошибки синтаксиса. Клиент не должен повторно отправлять этот запрос без модификации.

401 Unauthorized

Запрос требует авторизации пользователя1). С этим статусом сервер должен отправить в заголовке поле WWW-Authenticate с запросом авторизации. Клиент может повторно отправить свой запрос с включением в заголовок реквизитов авторизации (поле Authorization). Если запрос клиента уже содержал заголовок с реквизитами, ответ 401 означает, что реквизиты неверны и авторизация не состоялась. При получении статуса 401 пользователю должна быть представлена форма для ввода реквизитов доступа.

402 Payment Required

Данный ответ подразумевает оплату доступа к ресурсу. Не используется, зарезервирован для применения в будущем2).

403 Forbidden

Доступ запрещен. Сервер распознал запрос, но в доступе отказано. Отказ не связан с авторизацией, а обусловлен настройками сервера, клиент не должен повторять запрос к запрещенной области. Сервер должен отправить сообщение с объяснением отказа. Если доступ невозможен временно и сообщение о запрете нежелательно, то вместо этого статуса нужно использовать 404.

404 Not Found

В данный момент документ недоступен. Сервер не находит документа, соответствующего запрошенному URI. При этом не уточняется, постоянно или временно отсутствует доступ. Такой статус обычно отправляется, когда невозможно сообщить точную причину отказа и неприменим никакой более точный ответ. Если известно, что документ по этому адресу больше не существует, сервер должен отправлять вместо этого статуса 410 Gone.

405 Method Not Allowed

Метод доступа, указанный в запросе, не разрешен для ресурса, адресуемого запрошенным URI. Ответ сервера должен включать поле заголовка Allow, содержащее список допустимых методов для данного ресурса.

406 Not Acceptable

Ресурс по запрошенному URI отдает контент, который не соответствует характеристикам, приемлемым согласно полю Accept в заголовке запроса. Кроме случаев, когда в запросе указан метод HEAD, ответ сервера должен содержать список доступных характеристик ресурса и адрес, по которому можно выбрать наиболее подходящие. Формат ресурса задается медиатипом, указанным в поле заголовка ответа Content-type. Выбор может быть сделан автоматически в зависимости от возможностей клиента, но спецификация HTTP/1.1 не определяет какого-либо стандарта автоматического выбора.

В настоящий момент этот ответ реализуется упрощенно — если медиатип ресурса не совпадает ни с одним из списка типов, перечисленных в поле Accept запроса, то в ответ посылается статус 406 и сообщение о несоответствии.

407 Proxy Authentication Required

Этот ответ аналогичен 401, но требует от клиента авторизации на прокси-сервере. Прокси должен прислать в ответе поле заголовка Proxy-Authenticate, клиент может повторить запрос с соответствующим полем заголовка Proxy-Authorization. В остальном действует та же процедура HTTP-авторизации.

408 Request Timeout

Клиент не послал запрос в течение того интервала времени, когда сервер его ожидал. Запрос может быть отправлен повторно.

409 Conflict

Запрос не может быть выполнен из-за конфликта с текущим состоянием ресурса. Такой статус применим в тех редких случаях, когда на сервере реализован метод PUT и выполнение PUT-запроса вызывает конфликт с результатом предыдущего запроса.

410 Gone

Запрошенный документ больше не существует. Это состояние следует понимать как постоянное — точно известно, что документ удален с сервера, а не перемещен на какой-либо другой адрес. Клиенту рекомендуется по согласованию с пользователем удалить ссылки на запрошенный URI и больше по нему не обращаться.

В настоящее время поисковые системы «понимают» статус 410 так же, как и статус 4043). Со стороны Google были обещания реализовать автоматическое удаление ссылок, по которым получен ответ со статусом 410. Сроки предполагаемой реализации неизвестны.

411 Length Required

Сервер отказал в доступе по запросу с не определенным полем Content-Length в заголовке. Клиент может повторить запрос, если добавит в заголовок поле Content-Length с указанием длины «тела» запроса. Обычно применимо для POST-запросов.

412 Precondition Failed

Неудачная обработка условного запроса. Одно или более из условий, заданных в заголовке запроса, при попытке интерпретации сервером привело к ошибке.

413 Request Entity Too Large

Сервер отказывает в обработке запроса, поскольку запрошенный объект слишком велик — больше, чем сервер в состоянии обработать. Сервер может закрыть соединение, чтобы помешать клиенту продолжать запрос. Если это состояние является временным, сервер должен включить в заголовок ответа поле Retry-After с указанием, через какое время клиент может попытаться повторить запрос.

414 Request-URI Too Long

Запрошенный URI слишком длинный — длиннее, чем сервер может обработать. Этот сравнительно редкий отклик применяется, когда клиент некорректно преобразует POST-запрос в GET, передавая информацию в параметрах URI. Также используется в качестве защиты от бесконечной переадресации, когда клиент посылает запрос к редиректному URI-префиксу с тем же URI в качестве суффикса.

Практически этот отклик иногда приходит от поисковой системы Google, когда в поисковую форму вводится слишком длинный фрагмент текста (с учетом кодировки utf-8 и URL-кодирования актуально для длинных русскоязычных запросов).

415 Unsupported Media Type

Формат объекта запроса не поддерживается запрашиваемым ресурсом для данного метода запроса.

416 Requested Range Not Satisfiable

Сервер должен отправить такой статус, если в заголовке запроса есть поле Range и его значение не укладывается в диапазон допустимых значений для ресурса, при этом поле If-Range в запросе отсутствует. Для байтового диапазона это означает, что указанная в запросе позиция первого байта превышает общую длину запрошенного объекта.

С этим статусом сервер должен отправить в заголовке поле Content-Range с указанием актуальной длины запрошенного объекта.

417 Expectation Failed

Ожидаемая реакция сервера, указанная в поле Expect заголовка запроса, недостижима. Или, в случае прокси-сервера, точно известно, что следующий сервер не способен удовлетворить ожидания клиента.

На текущий момент это полный список возможных откликов на ошибочные запросы, точно определенных в RFC 2616.

1) Для тех, кому надо совсем просто — это именно тот отклик, который заставляет браузер спрашивать у вас логин и пароль для «запароленной» директории сайта
2) В настоящем можно попробовать использовать 402 для троллинга поисковых ботов, когда они пытаются запрашивать документы, запрещенные в robots.txt — «сперва заплати, железяка». Боты вряд ли поймут ваш ответ, но есть небольшой шанс, что этот статус дойдет до их создателей…
3) По субъективным оценкам, удаление из индекса URI, по которым выдается 410, происходит несколько быстрее. Но точных данных ни у кого нет, так как даже приблизительные сроки удаления при отклике 404 поисковиками не сообщались.
ошибки-клиента.txt · создано: 2012/09/23 03:33 — Spinne · Последние изменения: 2013/04/30 16:03 — Spinne
Наверх
Driven by DokuWiki