環境 nginx + php-fpmcurl -v -I -H "Accept-Encoding: gzip,deflate" http://www.ihezhu.com/* About to connect() to www.ihezhu.com port 80 (#0)* Trying 210.51.54.180... connected> HEAD / HTTP/1.1> User-Agent: curl/7.22.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3> Host: www.ihezhu.com> Accept: */*> Accept-Encoding: gzip,deflate> < HTTP/1.1 200 OKHTTP/1.1 200 OK< Server: nginxServer: nginx< Date: Fri, 18 Jan 2013 10:13:19 GMTDate: Fri, 18 Jan 2013 10:13:19 GMT< Content-Type: text/html; charset=utf-8Content-Type: text/html; charset=utf-8< Connection: keep-aliveConnection: keep-alive< Vary: Accept-EncodingVary: Accept-Encoding< Set-Cookie: PHPSESSID=i6nkkd79n7uenikq2727u8rln6; path=/Set-Cookie: PHPSESSID=i6nkkd79n7uenikq2727u8rln6; path=/< Expires: Thu, 19 Nov 1981 08:52:00 GMTExpires: Thu, 19 Nov 1981 08:52:00 GMT< Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0< Pragma: no-cachePragma: no-cache< Content-Encoding: gzipContent-Encoding: gzip* no chunk, no close, no size. Assume close to signal end< * Closing connection #0====update原因暫時還不明, 說下我做的測試用fiddler訪問, 不輸出用fiddler按照curl構造參數, 不輸出用chrome插件模擬curl請求, 不輸出在本機模擬了服務器配置一致的環境(php.ini, fastcgi, nginx.conf以及站點配置), 可以輸出現在準備在curl中模擬browser的請求, 看看怎樣
2 回答

弒天下
TA貢獻1818條經驗 獲得超8個贊
這個問題很有意思, 我猜是你在curl的時候, request headers提供的不足, 所以沒有被CDN cache到.
但是在瀏覽器的情況下, request headers很完整, 所以CDN就起作用了, 既然CDN服務器節點靠近你自己的網絡, 那么就不用壓縮了, 直接返回給你明文, 跳過gzip節省瀏覽器解壓時間, 加速網頁響應.
我這么猜是因為response header里面有個Vary

守著星空守著你
TA貢獻1799條經驗 獲得超8個贊
剛剛遇到,發現是在局域網內會出現這種情況,各類瀏覽器訪問靜態資源htm始終無法gzip壓縮,htm內加載的資源都正常gzip壓縮。
curl獲取htm也是正常gzip壓縮,就是瀏覽器不行。
后來通過外部網絡訪問發現是正常的。因為服務器對外服務,就懶得深究了。
- 2 回答
- 0 關注
- 384 瀏覽
添加回答
舉報
0/150
提交
取消