这几天偶然间发现,gzip无效了。http header输出的信息中并没有包含gzip,难不成出问题了?
问题具体表现为html,htm和动态格式php等的http头部信息中没有gzip一项输出,但js css等文件却包含gzip。
网址 XXX 检测结果如下: | |
是否压缩 | 否 |
压缩类型 | 无 |
原始文件大小 | 126295 字节 |
压缩后文件大小 | 35022 字节 |
压缩率(估计值) | 72.27% |
Header信息 | |
Server | nginx |
Date | Sat, 01 Dec 2012 10:57:17 GMT |
Content-Type | text/html |
Content-Length | 126295 |
Connection | keep-alive |
Vary | Accept-Encoding |
Set-Cookie | 9de5d_lastvisit=0%091354359437%09%2Findex.php; expires=Sun,01-Dec-2013 10:57:17 GMT; path=/,9de5d_lastpos=index; expires=Sun,01-Dec-2013 10:57:17 GMT; path=/,9de5d_lastvisit=0%091354359437%09%2Findex.php; expires=Sun,01-Dec-2013 10:57:17 GMT; path=/,9de5d_ol_offset=18430; expires=Sun,01-Dec-2013 10:57:17 GMT; path=/,9de5d_ipstate=1354359437; expires=Sun,01-Dec-2013 10:57:17 GMT; path=/ |
里面并没有找到Content-Encoding: gzip。
首先分析的是服务软件,可检查后并没有问题。并且在服务器上测试是正常的。
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 30 Nov 2012 14:47:35 GMT
Content-Type: text/html
Content-Length: 28101
Connection: keep-alive
Set-Cookie: 9de5d_lastvisit=141%091354286855%09%2Findex.php; expires=Sat, 30-Nov-2013 14:47:35 GMT; path=/
Content-Encoding: gzipHTTP/1.1 200 OK
Server: nginx
Date: Fri, 30 Nov 2012 14:52:53 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 6979
Connection: keep-alive
Vary: Accept-Encoding, Cookie
Cache-Control: max-age=3, must-revalidate
WP-Super-Cache: Served supercache file from PHP
Content-Encoding: gzip
Last-Modified: Thu, 29 Nov 2012 10:32:03 GMT
这时候将目标锁定为机房的信息检测系统(这东东你懂的),经过分析,是此硬件系统会自动过滤掉http header信息中的Gzip压缩一项,导致输出的内容不包含gzip信息,使其没有被压缩,可以直接被此套系统检测里面的内容。虽然目前很多款所谓的检测系统支持GZIP穿透检测,但估计精准度不高。
解决办法:木有。
为什么:你知道的。
[整理]信息检测系统/防火墙过滤http header 头部GZIP使GZIP失效:等您坐沙发呢!