我正在编写一个脚本,可以确定一个页面是否被压缩,并且我一直在做一些研究,并且不知道如何确定一个页面是否被压缩。我假设一个压缩的页面会在头文件中有东西说它是一个压缩文件。像内容类型或其他东西。有没有办法确定页面是否被压缩?
任何帮助表示赞赏。
我正在编写一个脚本,可以确定一个页面是否被压缩,并且我一直在做一些研究,并且不知道如何确定一个页面是否被压缩。我假设一个压缩的页面会在头文件中有东西说它是一个压缩文件。像内容类型或其他东西。有没有办法确定页面是否被压缩?
任何帮助表示赞赏。
压缩页面将具有压缩算法的Content-Encoding头。
例如:
内容编码:gzip
它实际上Content-encoding
。根据压缩的类型,在压缩数据的情况下,这可能是gzip
(或x-gzip
),deflate
或compress
。
的“内容编码”/“的Accept-Encoding” 和 “传输编码”,在HTTP/“TE” 页眉/ 1.1允许客户选择地接收压缩的HTTP响应, (不太常见)发送压缩请求。 HTTP/1.1规范(RFC 2616)规定了三种压缩方法:“gzip”(RFC 1952;包裹在gzip流中的内容),“deflate”(RFC 1950;包裹在zlib格式流中的内容)和“compress”(在RFC 2616第3.5节中解释为“由通用UNIX文件压缩程序产生的编码格式”compress),这种格式是自适应的Lempel-Ziv-Welch编码(LZW)。许多客户端库,浏览器和服务器平台(包括Apache和Microsoft IIS)都支持gzip。
不要用gzip的接受HTTP请求,然后分析接收的头,并查找内容编码:gzip
这是网络浏览器,可以看到页面是否被压缩。作为一个Web服务器Apache,在HTTP请求标头中找到Accept-Encoding: gzip,deflate
。如果它存在,它将压缩PHP脚本的HTML响应并进行相应的压缩。
奇我想这个网址我使用的是尽管他们发誓它没有压缩页面。这让我疯狂!大声笑感谢您的回应,我想我会去与服务器的人谈谈。 – Daniel 2010-07-28 20:22:10
除非客户说它可以处理它(例如'Accept-Encoding:gzip'),否则服务器不会发送压缩响应。它是HTTP内容协商过程的一部分。这可能是你的问题吗? – hobbs 2010-07-28 20:33:03