Ответ 1
Кажется, что решение найдено. После нескольких дней исследования отключения динамического сжатия содержимого помогло.
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, который я использую).
Кажется, что решение найдено. После нескольких дней исследования отключения динамического сжатия содержимого помогло.
Ответ уже был правильно указан здесь Владо Панджичем. Я не могу комментировать, поскольку я новичок на этом сайте, но я хотел добавить что-то, что нашел.
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