如何判断 Heroku 是否正在发送压缩响应?

ma1*_*w28 5 compression gzip http nsurlconnection websocket

我正在制作一个从 Heroku 请求 JSON 的 iPhone 应用程序。

  1. 我是否收到了压缩后的回复?而且,iPhone 是否会自动解压缩 gzipped 响应,或者您必须对其进行编程?我正在使用 NSURLConnection异步(使用委托协议),如 Xcode 文档中所述。

    当我做:

    curl -I http://acani.heroku.com/users/4c96ee4f1467281352000049/1234/50/50
    
    Run Code Online (Sandbox Code Playgroud)

    我得到:

    HTTP/1.1 200 OK
    Server: nginx/0.7.67
    Date: Sun, 17 Oct 2010 16:27:25 GMT
    Content-Type: application/json
    Connection: keep-alive
    Content-Length: 11532
    X-Varnish: 2314841869
    Age: 0
    Via: 1.1 varnish
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我还使用 Zimt WebSocket 代码和 AsyncSocket 进行聊天。聊天服务器是 Node.js。我应该压缩每条聊天消息吗?还是自动完成的?

  3. 我想知道,为了减少带宽,Twitter 是否在将您的推文发送到 Twitter 之前对其进行 gzip(在网络上使用 JavaScript,或在 iPhone 上使用 Objective-C)?

谢谢!

马特

Rem*_*eau 4

要检测响应是否被压缩,您需要查找Content-Encoding标头。它可以设置为gzipcompress、 或deflate。有关更多详细信息,请参阅RFC 2616第 3.5 节。

  • 除非客户端的请求表明支持压缩,否则 HTTP 服务器不允许压缩响应。这是通过“Accept-Encoding”请求标头完成的,该标头指定客户端可识别的以逗号分隔的编码列表。然后,服务器可以选择其中之一并在“Content-Encoding”响应标头中指定。 (2认同)