gpt4 book ai didi

ssl - 使用 Safari 通过 SSL 进行 Gzip 压缩?

转载 作者:太空宇宙 更新时间:2023-11-03 13:28:38 25 4
gpt4 key购买 nike

今天早上,我在尝试访问我正在使用 iPad (Safari Mobile/Webkit) 构建的网络应用程序时遇到了一个非常奇怪的问题。在前端,Web 应用严重依赖 XHR/Ajax 请求。在后端,如果“Accept-Encoding”包含“gzip”,则服务器配置为 gzip 压缩响应。

在我将服务器切换到 SSL 之前,一切都运行良好。然后我开始在 Safari 中出现间歇性的“CFURLErrorDomain:303”错误。

快速搜索后我找到了这个链接:

http://beyondrelational.com/modules/2/blogs/45/posts/12034/failed-to-load-resource-safari-issue.aspx

根据链接,Safari 在通过 SSL/HTTPS 发出 XHR (ajax) 请求时需要内容长度 header 。在我的例子中,服务器将内容直接 gzip 到输出流,所以我无法知道最终内容的长度。

作为解决方法,我在服务器上添加了以下逻辑:

    if (request.isEncrypted()) gzip =
!request.getHeader("User-Agent").toLowerCase().contains("webkit");

换句话说,如果连接是通过 SSL 加密的,并且浏览器是一些 webkit 衍生产品(例如 Safari、Chrome 等),那么不要压缩输出。这似乎有效,但它确实减慢了速度。

所以我的问题是:

Safari 是否支持通过 SSL 的 gzip 压缩响应,还是我找错了树?

最佳答案

原来我看到的错误是服务器中的错误,与 Safari 无关。服务器在压缩大字节数组时依赖于分块传输编码。单独的“ block ”被分解成片段(标题、正文、尾部)并在单独的消息中发送给客户端。 SSL 客户端(safari)期待一个连续的“ block ”,所以当它看到一个不完整的 block 时不知道该怎么做。服务器已打补丁,问题现已解决。

关于ssl - 使用 Safari 通过 SSL 进行 Gzip 压缩?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12978583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com