Представлено на рассмотрение IETF Характеристики новые коды состояния HTTP, которые более точно описывают некоторые распространенные ситуации.
428 Precondition Required 429 Too Many Requests 431 Request Header Fields Too Large 511 Network Authentication RequiredКод состояния 428 (требуется предварительное условие) означает, что серверу требуются условия для выполнения запроса.
Это типичная ситуация, когда клиент получает данные через GET, модифицирует их и отправляет обратно на сервер через PUT, но к этому моменту они уже были изменены другим клиентом, что приводит к конфликту.
Требуя условного запроса, сервер защищает себя от возникновения конфликта.
При этом должны быть указаны условия корректной отправки данных на сервер.
HTTP/1.1 428 Precondition Required
Content-Type: text/html
<html>
<head>
<title>Precondition Required</title>
</head>
<body>
<h1>Precondition Required</h1>
<p>This request is required to be conditional;
try using "If-Match".
</p>
</body>
</html>
Код состояния 429 (слишком много запросов) означает, что пользователь отправил слишком много запросов за определенный период времени.
Ответ должен содержать объяснение нарушенного условия и может содержать заголовок Повторить попытку после с указанием времени, которое необходимо подождать перед повторением.
HTTP/1.1 429 Too Many Requests
Content-Type: text/html
Retry-After: 3600
<html>
<head>
<title>Too Many Requests</title>
</head>
<body>
<h1>Too many Requests</h1>
<p>I only allow 50 requests per hour to this Web site per
logged in user. Try again soon.</p>
</body>
</html>
Код состояния 431 (поля заголовка запроса слишком велики) используется, когда сервер отказывается обрабатывать запрос из-за того, что один или несколько заголовков в сумме превышают норму.
Во втором случае в ответе должно быть указано, какой заголовок вызвал проблему.
HTTP/1.1 431 Request Header Fields Too Large
Content-Type: text/html
<html>
<head>
<title>Request Header Fields Too Large</title>
</head>
<body>
<h1>Request Header Fields Too Large</h1>
<p>The "Example" header was too large.</p>
</body>
</html>
Код состояния 511 (требуется сетевая аутентификация) означает, что вам необходимо пройти аутентификацию, а ответ должен содержать инструкцию, как это сделать, например, с помощью HTML-формы по указанному адресу.
Ошибку 511 возвращает не целевой сервер, а прокси, который не пускает пользователя в сеть (например, роутер в платной зоне Wi-Fi с несанкционированным доступом).
Например, пользователь отправляет HTTP-запрос по TCP на порт 80. GET /index.htm HTTP/1.1
Host: www.example.com
Сервер входа возвращает этот ответ. HTTP/1.1 511 Network Authentication Required
Refresh: 0; url= https://login.example.net/
Content-Type: text/html
<html>
<head>
<title>Network Authentication Required</title>
</head>
<body>
<p>You need to <a href=" https://login.example.net/ ">
authenticate with the local network</a> in order to get
access.</p>
</body>
</html>
Теги: #HTTP-код #код состояния HTTP #ошибка 428 #ошибка 429 #ошибка 431 #ошибка 511 #ИТ-стандарты
-
Задачи, Связанные С Управлением Проектами
19 Oct, 24 -
Услуги Seo-Маркетинга — Обзор
19 Oct, 24 -
Полное Описание Идеи Игры. Часть 2: Форма
19 Oct, 24