Accept-Encoding:iOS上的gzip

Q1使用iOS App Kit,我可以期待Accept-Encoding: gzip会自动使用吗,还是需要在URL请求中设置这个地址来明确地要求使用它?

我目前正在使用调用[NSData dataWithContentsOfURL: url] ,虽然我很可能会改为专门设置NSURLSession – 这是否可能会自动请求gzip编码?

Q2另外,如果使用它并且服务器使用gzip-ed内容,则我是否正确,客户端会自动解码压缩的内容,以便我不需要?

这一切都是自动的,虽然我不能立即find权威的参考。 您可以使用代理凭经validation明。

目前为止我能find的最好的: iOS 7.1发行说明提及,

已添加兼容性行为以解决某些Web服务器将“Content-Encoding:gzip”内容发送错误的Content-Length值的问题。 以前,NSURLConnection和NSURLSession会在这种情况下发送“networking连接丢失”/ NSURLErrorNetworkConnectionLost(-1005)错误。

仅当Content-Length值与扩展的gzip内容完全匹配时,兼容性行为才适用。 它不会适用于“closures1”或类似的错误计数。

NSURLConnectionNSURLSession包含处理gzip内容的代码,并且在7.1之前肯定是这样做的(按照“先前”的引用)。 有趣的是,他们似乎自古以来就这样做了,但无论如何,7.0+现在大约是应用程序下载市场的98%。