Назад | Перейти на главную страницу

настраиваемая страница ошибки для URI запроса HTTP 414 слишком длинная

Я могу настроить пользовательские страницы ошибок для ошибок на уровне приложения с помощью customErrors, а также ошибок HTTP с помощью httpErrors. Но ни один из них не обрабатывает ошибку HTTP 414.

Я прошел ответ на Эта статья но я не уверен, достаточно ли я исследовал, чтобы обработать для этого настраиваемую страницу ошибок.

Поскольку 414 URI Too Long (RFC 7231 6.5.12) - ошибка, вызванная неправильным форматом /path?query часть URI в самой первой строке HTTP-запроса, сервер никогда не видит никаких других заголовков, включая Host: заголовок второй строки: он уже отвечает сразу после получения слишком длинного URI, например

-->   GET /imagine/this/was/a/.../too.long?request=url HTTP/1.1
<--   HTTP/1.1 414 Request-URI Too Long
<--   Content-Type: text/html; charset=us-ascii
<--   Server: Microsoft-HTTPAPI/2.0

Поэтому естественно, что настроить пользовательский 414 страниц на сайте на любом веб-сервере.

Я думал, что это будет возможно на сервере IIS с использованием глобального IIS> Страницы ошибок, но на основании теста кажется, что 414 ошибка исправлена ​​и не может быть изменена вообще. Единственная исходная статья, которую я смог найти, была из устаревшего содержимого базы знаний Microsoft, Сообщение об ошибке: HTTP 414 - запрос - слишком длинный URI:

IIS проверяет длину строки URI и не обслуживает запрос, если URI длиннее ожидаемого. Это сделано намеренно.

Однако это состояние должно быть редким, так как его можно легко предотвратить, если:

  • с помощью POST вместо того GET всякий раз, когда данные запроса могут быть длиннее, чем 2000 символов.
  • будьте осторожны, чтобы любое перенаправление не привело к возникновению цикла, в котором сам URL-адрес используется в качестве префикса.

С этими принципами пользователь никогда не увидит страницу, а удобочитаемые пользовательские страницы ошибок предназначены только для пользователей: любое программное обеспечение может использовать код ошибки из самой первой строки заголовка ответа.