Ok, I think we've figured it out...
On the client side, Squid 2.5 and earlier doesn't understand "Transfer-encoding: chunked", so it delivers each chunk as the entire client request. Since it's only 1 chunk of the entire compressed request, it's invalid data and can't be read by the browser. (Not sure if this is an issue with other proxies)
On the server side, IIS always sends chunked encoding for Dynamic Compression (since IIS doesn't cache application responses, it has to compress each response on the fly, hence the chunked encoding).
The only way we can think of to fix this is to completely disable compression for HTTP 1.0 clients and only compress for HTTP 1.1 responses. The drawback is that anyone behind a proxy that sends 1.0 requests won't get compressed data and the site will load 0.5 - 1 second slower for those users.
Changes made in the metabase.xml file:
<IIsCompressionSchemes Location ="/LM/W3SVC/Filters/Compression/Parameters"
...
HcDoOnDemandCompression="TRUE"
HcNoCompressionForHttp10="TRUE"
...
</IIsCompressionSchemes>
If anyone has a better solution, please let me know!
Best Answer
ISAPI Rewrite runs on IIS 6.0, so the solution on that page you linked, should work:
If you don't want to spend 99 USD for the license (I think it's worth, I used it myself on IIS 6.0), there is an open source project on CodePlex, which works in a similar way.