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 "或类似的错误计数
。NSURLConnection
和NSURLSession
包含处理gzip内容的代码,并且肯定在7.1之前这样做了(根据"先前"的参考)。有趣的是,他们似乎自古以来就这么做了,但无论如何,7.0+现在约占应用下载市场的98%。