Eu tenho algum conteúdo estático passando por um CDN. Estou usando a compactação interna do IIS6 (gzip & deflate) para conteúdo estático e isso está funcionando bem quando eu solicito isso. No entanto, quando o CDN faz a solicitação inicial para o conteúdo, ele não está sendo retornado compactado. Portanto, eles não têm conteúdo compactado para encaminhar para as pessoas que o solicitam. (Sim, isso levanta a questão das pessoas que solicitam o conteúdo [zipado] do CDN com um navegador que não consegue lidar com a compressão. Porém, vamos colocar isso de lado por enquanto.)
Veja um exemplo de solicitação sem o cabeçalho "Via":
HEAD /flash/swfobject.js HTTP/1.1
User-Agent: curl/7.19.7 (i386-pc-win32)
Host: localhost:9120
Accept: */*
Connection: Keep-Alive
accept-encoding: gzip
E retorna uma resposta compactada:
HTTP/1.1 200 OK
Content-Length: 4357
Content-Type: application/x-javascript
Content-Encoding: gzip
Expires: Wed, 01 Jan 2020 00:00:00 GMT
Last-Modified: Wed, 18 Nov 2009 15:36:52 GMT
Accept-Ranges: bytes
Vary: Accept-Encoding
Server: Microsoft-IIS/6.0
Date: Thu, 19 Nov 2009 10:27:50 GMT
No entanto, se eu incluir um cabeçalho 'Via' na solicitação (como faz o CDN), o resultado será descompactado:
Solicitação:
HEAD /flash/swfobject.js HTTP/1.1
User-Agent: curl/7.19.7 (i386-pc-win32)
Host: localhost:9120
Accept: */*
Connection: Keep-Alive
Via: 1.1 204.160.105.17:80 (Footprint 4.5/FPMCP)
accept-encoding: gzip
Resposta:
HTTP/1.1 200 OK
Content-Length: 14602
Content-Type: application/x-javascript
Expires: Wed, 01 Jan 2020 00:00:00 GMT
Last-Modified: Wed, 18 Nov 2009 15:36:54 GMT
Accept-Ranges: bytes
Server: Microsoft-IIS/6.0
Date: Thu, 19 Nov 2009 10:29:52 GMT
Sim, essas demos usam 'localhost' na solicitação. Eu recebo o mesmo resultado usando o nome de domínio real de várias máquinas em várias redes.
Duas perguntas, então:
-
Isso poderia ser o IIS não aplicando a compactação devido ao cabeçalho extra? e se sim, o que posso fazer sobre isso?
-
Como posso saber se o proxy está descompactando o conteúdo antes de retorná-lo?
Pergunta bônus:
- O que posso fazer para investigar esse problema ainda mais?
Estou ciente da pergunta SO 332049 , mas isso tem o cabeçalho na resposta, não a solicitação.