この記事は3年以上前に書かれた記事です。情報が古い可能性があります。
HTTPの応答を受け取って内容を解析するプログラムをつくっていたのだけど、HTTP通信は全てテキスト形式だと思っていたら罠があった。
HTTP1.1は、BODY部がgzip圧縮されてくることがある!
圧縮、非圧縮を判定するキーはHEADER部のContent-Encodingにある。
Content-Encoding: gzip
などとなっていたら、BODY部は圧縮されている。gzip以外に、x-gzipとかdeflateとか書かれてることもある。その場合は、BODY部をzlibなどで展開する必要がある。
つまり、HTTP1.1対応のブラウザは、暗黙にこれをやってるんですね。