Новые Коды Статуса Http

Представлено на рассмотрение 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 #ИТ-стандарты

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.