Подтвердить что ты не робот

Safari не будет загружать некоторые ресурсы через http/2

Http/2 включен на сервере, и вчера я заметил, что на Iphone (IOS 10.2) не загружаются некоторые ресурсы с ошибкой: failed to load resource:connecting to server is not possible. Когда я подключаю Iphone к Mac, ошибок нет в консоли, но просто результат некоторых запросов приводит к ошибке в этой ошибке. Интересным может быть тот факт, что ресурсы, которые не загружены, являются субдоменом реального домена (CNAME является правильным). Сайт находится на https. Сервер - это сервер Windows 2016.

РЕДАКТИРОВАТЬ: Мы решили эту проблему поддомена, но все же есть запросы из того же домена, которые не отвечают на какой-либо ответ.

Я знаю, что IOS > 9.3 поддерживает http/2, когда ресурсы загружаются через https, но вещь, что ресурсы, которые не работают, не являются частью этого домена, могут помочь решить эту проблему, но я не знаю, как это сделать.

Я знаю, что, вероятно, проблема связана с протоколом http/2, потому что мое собственное приложение Android также перестало работать с ошибкой: java.io.IOException: stream was reset: PROTOCOL_ERROR . Я решил эту проблему, вынудив мое приложение использовать http/1. В настоящее время работает. Но как решить эту проблему сафари iphone?

Я использую ASP.NET Web Forms в качестве backend (который поддерживает http2 с ASP.NET 4.6, который я использую).

4b9b3361

Ответ 1

Кажется, что решение найдено. После нескольких дней исследования отключения динамического сжатия содержимого помогло.

введите описание изображения здесь

Ответ 2

Ответ уже был правильно указан здесь Владо Панджичем. Я не могу комментировать, поскольку я новичок на этом сайте, но я хотел добавить что-то, что нашел.

IOS меньше версии 11 поддерживает HTTP/2. НО! Он застрянет, если страница слишком большая и сжата. Я не уверен, что такое отсечка, но если вы откроете небольшую страницу с динамическим сжатием (Gzip или что-то еще), она будет работать нормально. ASP или PHP и т.д., Не имеет значения. После того, как страница достигнет сжатого размера данных, для чего требуется многократное округление, чтобы вытащить данные, тогда Safari получает изюминку.

Он буквально войдет в бесконечный цикл, забивая ваш сервер запросами. Я видел тысячи просмотров страниц, в то время как Safari просто застрял на белом белом экране.

Проблема для меня заключается в том, что отключение динамического сжатия на вашем веб-сайте приведет к штрафам от Google за мобильность. Google хочет, чтобы у вас было сжатие, но вы должны отключить его для Safari, что отстой.

Моим решением было включить динамическое сжатие всего веб-сайта, но я использовал файл web.config, чтобы отключить его для определенных страниц, которые, как я знаю, могут быть довольно большими по размеру.

<location path="large-page.aspx">
    <system.webServer>
        <urlCompression doDynamicCompression="false" />
    </system.webServer>
</location>

Удачи!

Matt