为了账号安全,请及时绑定邮箱和手机立即绑定

但直接浏览器却没有看到输出Content-Encoding 大概怎么回事?

但直接浏览器却没有看到输出Content-Encoding 大概怎么回事?

PHP
米脂 2023-04-19 15:11:48
环境 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


查看完整回答
反对 回复 2023-04-21
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

刚刚遇到,发现是在局域网内会出现这种情况,各类浏览器访问静态资源htm始终无法gzip压缩,htm内加载的资源都正常gzip压缩。
curl获取htm也是正常gzip压缩,就是浏览器不行。
后来通过外部网络访问发现是正常的。因为服务器对外服务,就懒得深究了。

查看完整回答
反对 回复 2023-04-21
  • 2 回答
  • 0 关注
  • 315 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信