Заставить HTTP1.1 вместо HTTP2 через прокси (Charles)
Поскольку мы обновили наших клиентов до HTTP2, у меня возникли проблемы с отображением файлов на локальные ресурсы. Обычно мы используем Charles (App), но поскольку мы обновили HTTP2, у нас были некоторые ошибки.
Кажется, вырезали файлы короткими и загрузили только небольшую часть файлов. Затем Чарльз возвращает сообщение об ошибке:
Закрытое клиентское соединение перед получением полного ответа
Я просматривал большие промежутки для ответов, но пока не смог найти их.
Надеюсь, здесь есть блестящие умы.
Ответы
Ответ 1
Обходной путь, который я нашел, - это использовать флаг disable-http2 при запуске Chrome. В MacOS команда терминала будет:
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-http2
В Windows вы можете изменить свой ярлык для запуска с помощью этой опции --disable-http2.
Ответ 2
Мы рассмотрели этот вопрос в Charles 4.1.2b2. Пожалуйста, попробуйте из https://www.charlesproxy.com/download/beta/
Пожалуйста, дайте мне знать, если это делает или не исправляет проблему для вас! Мы планируем выпустить эту сборку для выхода довольно скоро, особенно после того, как у нас появилось больше пользователей, которые подтвердят это решение.
Ответ 3
Как вы сказали, проблема возникает из-за того, что клиент был обновлен, вы дважды проверяете все точки относительно проблемы с кешем клиента? (см. здесь об инструменте без кэширования в Чарльзе)
Вы можете использовать "Обновить заголовок" , чтобы принудительно изменить версию протокола HTTP:
Поле заголовка Upgrade - поле заголовка HTTP, введенное в HTTP/1.1. В обмене клиент начинает с запроса cleartext, который позже обновляется до более новой версии протокола HTTP или переключается на другой протокол. Обновление подключения должно запрашиваться клиентом, , если сервер хочет обеспечить обновление, он может отправить ответ на обновление с обновлением 426. Затем клиент может отправить новый запрос с соответствующими заголовками обновлений, не открывая соединение.