Ошибка HTTP 431 после изменения сервера и IP-адреса аутентифицированного паролем домена

У меня есть тестовый домен, например: https: www.test.com, недавно я переместил свой сервер на новый, на котором размещен в liquid-web . После переноса этой тестовой учетной записи на новый сервер и указания только этот домен начал выдавать ошибку HTTP error 431, а для некоторых из них - пустой экран. У меня есть аутентификация по паролю для этого сайта.

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

enter image description here

Это снимок экрана, который я получаю. Пытался удалить htaccess и поместить только index.html в корень, уменьшил значение TTL, пробовал использовать без кеширования через метатег в заголовке, но ничего не помогло.

Кто-нибудь получил представление о том, что такое HTTP-ошибка 431

0
задан 5 February 2018 в 10:44
2 ответа

После нескольких ударов головой по моему столу, выяснилось, что проблема в том, что я создал большой набор куки-файлов, которые использовал для сохранения идентификатора продукта посетителя, что вызвало проблему в HTTP 2.0 . Я переписал cookie-файлы, чтобы использовать только небольшое пространство, и теперь он работает нормально.

Сайт не работал даже после того, как я уменьшил cookie-сайт и загрузил новый код до нового размера. Он вообще не заходил на сайт, мне пришлось понизить класс нового сервера HTTP 2.0 до HTTP 1.2, который работал нормально. Как только мы уменьшили размер куки-файлов на сайте, мы обновили его до HTTP 2.0 и исправили проблему на новом сервере.

Но до сих пор не знаю, что вызвало проблему в HTTP 2.0.

.
0
ответ дан 4 December 2019 в 13:27

Та же проблема возникла после обновления до HTTP 2. Это было вызвано слишком большим количеством установленных файлов cookie. Сложность заключается в том, что эта ошибка не была вызвана размером поля заголовка (в Apache он одинаков для HTTP 1 и 2). Это было вызвано большим количеством полей заголовка. Кажется, что HTTP 1 считает все файлы cookie вместе как один заголовок, но HTTP2 считает каждый файл cookie как один заголовок. После увеличения LimitRequestFields со 100 до 1000 проблема исчезла.

Это причина из спецификации HTTP 2:

Чтобы обеспечить лучшую эффективность сжатия, поле заголовка Cookie МОЖЕТ быть разделено на отдельные поля заголовка, каждый с одной или несколькими парами cookie.

Это означает, что в HTTP 1 cookie всегда есть только одно поле. В HTTP 2 файлы cookie могут быть разделены на множество полей. Это основная причина и причина того, что проблемы возникают только в некоторых браузерах.

2
ответ дан 4 December 2019 в 13:27

Теги

Похожие вопросы