php - curl 可以看到能输出gzip 但是在浏览器下却没有输出
怪我咯
怪我咯 2017-04-10 14:24:14
[PHP讨论组]

环境 nginx + php-fpm

curl -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 OK
HTTP/1.1 200 OK
< Server: nginx
Server: nginx
< Date: Fri, 18 Jan 2013 10:13:19 GMT
Date: Fri, 18 Jan 2013 10:13:19 GMT
< Content-Type: text/html; charset=utf-8
Content-Type: text/html; charset=utf-8
< Connection: keep-alive
Connection: keep-alive
< Vary: Accept-Encoding
Vary: Accept-Encoding
< Set-Cookie: PHPSESSID=i6nkkd79n7uenikq2727u8rln6; path=/
Set-Cookie: PHPSESSID=i6nkkd79n7uenikq2727u8rln6; path=/
< Expires: Thu, 19 Nov 1981 08:52:00 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
< Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< Pragma: no-cache
Pragma: no-cache
< Content-Encoding: gzip
Content-Encoding: gzip
* no chunk, no close, no size. Assume close to signal end

< 
* Closing connection #0

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

====update
原因暂时还不明, 说下我做的测试
用fiddler访问, 不输出
用fiddler按照curl构造参数, 不输出
用chrome插件模拟curl请求, 不输出
在本机模拟了服务器配置一致的环境(php.ini, fastcgi, nginx.conf以及站点配置), 可以输出
现在准备在curl中模拟browser的请求, 看看怎样

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(2)
伊谢尔伦

建议你用wireshark抓包看看,可能只是chrome没显示这个出来。

感觉chrome的开发者工具不那么靠谱,比如显示出了 Transfer-Encoding: chunked,但是显示出来的却找不是原始的response(不是chunked的格式)。

PHP中文网

这个问题很有意思, 我猜是你在curl的时候, request headers提供的不足, 所以没有被CDN cache到.

但是在浏览器的情况下, request headers很完整, 所以CDN就起作用了, 既然CDN服务器节点靠近你自己的网络, 那么就不用压缩了, 直接返回给你明文, 跳过gzip节省浏览器解压时间, 加速网页响应.

我这么猜是因为response header里面有个Vary, 查了一下Vary的功能和CDN有关

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号