2010-10-17 37 views
3

我正在做一個iPhone應用程序,從Heroku請求JSON。如何判斷Heroku是否發送gzip響應?

  1. 我得到一個gzip的迴應? 而且,iPhone是否自動將 解壓縮gzip響應,還是你 必須編程?我在Xcode文檔中描述了異步使用 NSURLConnection (與委託協議) 。

    當我這樣做:

    curl -I http://acani.heroku.com/users/4c96ee4f1467281352000049/1234/50/50 
    

    我得到:

    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 
    
  2. 我還使用了Zimt的WebSocket代碼AsyncSocket聊天。聊天服務器是Node.js.我應該gzipping每個聊天消息?或者是自動完成的?

  3. 我想知道,爲了減少帶寬,Twitter在發送到Twitter之前是否會將gweip推文(在Web上使用JavaScript,或者在iPhone上使用Objective-C)

謝謝!

馬特

回答

2

要檢測一個反應是壓縮的,你需要尋找一個Content-Encoding頭。它可以設置爲gzip,compressdeflate。有關更多詳細信息,請參閱RFC 2616第3.5節。

+0

謝謝。這很好。現在,我該如何告訴heroku gzip爲Sinatra? – ma11hew28 2010-10-20 00:23:27

+2

除非客戶端的請求指示支持壓縮,否則HTTP服務器不允許壓縮響應。這是通過'Accept-Encoding'請求頭完成的,該頭指定了客戶端識別的以逗號分隔的編碼列表。然後,服務器可以選擇其中一個,並在「Content-Encoding」響應頭中指定。 – 2010-10-20 00:47:40

相關問題