Google で Proxomitron が機能しないのを回避するフィルタ

フィルタ

[HTTP headers]
In = FALSE
Out = TRUE
Key = "Accept-Encoding: kill sdch (out) [2011/05/14]"
Match = "(\#,|)sdch(,\#|)"
Replace = "\@"

原因

Google Chrome は「Shared Dictionary Compression over HTTP (SDCH)」という独自の圧縮プロトコルが組み込まれており、Proxomitron はこれを解釈できません。
これはHTTPレスポンスヘッダ「Content-Encoding」を見ることで確認できます。

Content-Encoding: sdch,gzip

対策

リクエストヘッダ「Accept-Encoding」から "sdch" を削除します。そうすることで Google Webサーバはブラウザが SDCH を解釈できないと理解し、SDCH で圧縮していないデータを返します。

+++GET 779+++
GET /search?sourceid=chrome&ie=UTF-8&q=test HTTP/1.1
Host: www.google.co.jp
Accept-Encoding: gzip,deflate
...

+++RESP 779+++
HTTP/1.1 200 OK
Content-Encoding: gzip
...