【问题标题】:Safari won't load some resources over http/2Safari 不会通过 http/2 加载一些资源
【发布时间】:2017-09-01 09:38:01
【问题描述】:

在服务器上启用了 Http/2,昨天我注意到在 Iphone (IOS 10.2) 上没有加载一些资源错误:failed to load resource:connecting to server is not possible。当我将 Iphone 连接到 Mac 时,控制台中没有错误,只是某些请求的结果立即导致该错误。有趣的事情可能是未加载的资源是真实域的子域(CNAME 是正确的)。网站在 https 上。 服务器是 Windows server 2016。

编辑: 我们解决了这个子域问题,但仍然有来自同一域的请求没有响应。

我知道 IOS > 9.3 在通过 https 加载资源时支持 http/2,但是不工作的资源不属于该域可以帮助解决此问题,但我不知道如何解决。

我知道问题可能与 http/2 协议有关,因为我的 android 本机应用程序也因错误而停止工作: java.io.IOException: stream was reset: PROTOCOL_ERROR 。我通过强制我的应用程序使用 http/1 解决了这个问题。现在工作。但是如何解决那个 iphone safari 问题呢?

我使用 ASP.NET Web 窗体作为后端(从我使用的 ASP.NET 4.6 开始支持 http2)。

【问题讨论】:

  • 你遇到了有趣的问题。 PS:格式化。
  • 您的 SSL 证书是仅为真实域颁发的,还是为子域颁发的通配符证书?
  • 是的,并且适用于子域,但我最近注意到实际域(不是子域)中的某些页面无法加载。如果我打开在 Chrome 或 Firefox 中不起作用的页面,我会得到响应(虽然是 http 1.1)响应。在 Mac 上的 Chrome 上运行的页面也可以运行并返回 http2 响应。我网站上的某些内容可能会阻止返回 http2 响应吗?还是 IIS 有问题,无法降级对相同页面的请求?
  • 我们尝试通过添加 EnableViewState="false" 在有问题的 ASP.NET WebForms 页面上禁用视图状态,它似乎在某些情况下有所帮助(一些页面现在正在打开),但仍然没有最终解决方案...

标签: ios https safari network-protocols http2


【解决方案1】:

您也可以禁用 gZip 并使用 brotli 来代替压缩,旧版本的 Safari 不支持它,所以它似乎可以工作。

https://github.com/saucecontrol/Brotli-IIS

【讨论】:

    【解决方案2】:

    Vlado Pandžić 已经在上面正确地提供了答案。 我无法发表评论,因为我是这个网站的新手,但我想添加一些我发现的内容。

    低于版本 11 的 IOS 确实支持 HTTP/2。但!如果页面太大并且被压缩,它会卡住。我不确定截止日期是什么,但是如果您打开一个具有动态压缩(Gzip 或其他)的小页面,它会正常工作。 ASP 或 PHP 等,没关系。一旦页面达到需要多次往返来提取数据的压缩数据大小,那么 Safari 就会大吃一惊。

    它实际上会进入一个无限循环,用请求锤击你的服务器。当 Safari 卡在一个空白的白色屏幕上时,我看到了成千上万的页面点击量。

    对我来说,问题是在您的整个网站上禁用动态压缩会导致 Google 因移动设备友好性而受到处罚。谷歌希望你开启压缩,但你必须为 Safari 禁用它,这很糟糕。

    我对此的解决方案是在整个网站上启用动态压缩,但我使用 web.config 文件为我知道可能非常大的特定页面禁用它。

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

    祝你好运!

    马特

    【讨论】:

      【解决方案3】:

      似乎找到了解决方案。经过几天的调查禁用动态内容压缩有所帮助。

      【讨论】:

      • 问题是你必须为整个网站这样做,然后因为不“移动友好”而受到谷歌的惩罚。
      猜你喜欢
      • 2018-01-10
      • 2020-10-27
      • 2018-12-16
      • 2015-03-25
      • 2015-09-04
      • 2017-04-17
      • 1970-01-01
      相关资源
      最近更新 更多