Accept-Encoding: gzip on iOS



Q1使用iOS App kit,我可以期望Accept-Encoding: gzip将被自动使用,或者我需要通过在URL请求中设置它来明确要求使用它吗?

我目前正在使用呼叫[NSData dataWithContentsOfURL: url],虽然我很可能改变到专门设置一个NSURLSession -这可能会自动请求gzip编码吗?

Q2此外,如果使用并且服务器强制使用gzip-ed内容,我是否正确,客户端将自动解码压缩的内容透明,以便我不需要?

这都是自动的,尽管我不能立即找到权威参考。你可以用代理来证明。

到目前为止我能找到的最好的:iOS 7.1发布说明顺便提到…

添加了一个兼容性行为来解决一些问题web服务器会发送错误的内容长度值"content - encoding: gzip"内容。以前,NSURLConnection和NSURLSession会发送一个" network connection was lost "/在这种情况下NSURLErrorNetworkConnectionLost(-1005)错误。

兼容性行为仅适用于Content-Length值完全匹配扩展后的gzip内容。它不会适用于"off"1 "或类似的错误计数

NSURLConnectionNSURLSession包含处理gzip内容的代码,并且肯定在7.1之前这样做了(根据"先前"的参考)。有趣的是,他们似乎自古以来就这么做了,但无论如何,7.0+现在约占应用下载市场的98%。

最新更新