如何Gzip已在Tomcat中工作(How Gzip in Tomcat works)

2019-10-20 22:31发布

我在做有关脚本压缩的问题。 以下就是我刚才在计算器中发现:

“如果你在网页中使用它,gzip的是在你的Web服务器的配置方法,该文件由服务器,发送到浏览器gzip压缩无需手动操作对于Apache:。 HTTP://httpd.apache。组织/文档/ 2.0 / MOD / mod_deflate.html 。

如果您提供的代码,开发者,你可以使用gzip命令。”

有人告诉我,如果使用这样的剧本压缩策略,它会使你很容易调试:

当你使用Firebug在运行时调试JavaScript,你看剧本原来是这样,未压缩的一个,这是非常具有可读性。

但是,如果你使用YUI压缩机,在Firebug中的脚本会是这样的:

var is_moz=(typeof document.implementation.createDocument!="undefined");var is_chrome=navigator.userAgent.toLowerCase().indexOf("chrome")>-1;var selectedTreeNodeIdInOper="";var selectedTreeNodePkInOper="";var winDef="width=490,height=190,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,copyh....

这仅仅是在一条水平线上,难以阅读。

我的问题是,如何才能gzip压缩在Tomcat中发送的压缩脚本到客户端同时显示开发商原来的脚本? 魔法?

Answer 1:

有两个不同的问题怎么回事:压缩和缩小。

压缩是通过服务器压缩内容的过程(HTML,CSS,JS)发送到客户端(浏览器)。 然后浏览器去压缩内容返回到什么是它得到了压缩前。 到时候你去查看源代码或者看看你的浏览器中,你看到原始脚本开发工具。 认为它像发送压缩文件给别人。 原始文件仍然存在,正是因为它是,刚刚在一个zip包裹起来。

压缩可以在你的应用程序的体系结构的几个地方被启用。 你可以在你的Web服务器启用它(你链接到Apache的httpd的文档),你的应用服务器(Tomcat的支持压缩),或在自己的代码(搜索的例子“的servlet压缩过滤器”)

缩小(这是YUI压缩机等工具做的)永久的改变了剧本,通常是创建该文件的-min.js版本。 该文件将缺少新行和可能的变量重新命名。 因为这个改变文件是什么服务器发送,这就是你会在浏览器中看到,是的,这是很难调试。 浏览器制造商已经意识到这一点和Chrome,Firefox和IE11 +支持sourcemaps ,告诉浏览器如何从代码返回到原始文件的最小化版本地图。 YUI压缩机不支持sourcemaps,但其他工具,如丑化做。

您可以使用缩小和压缩在一起,有这样做的好处。 见这个讨论更多细节。



文章来源: How Gzip in Tomcat works