- 浏览: 752710 次
- 性别:
- 来自: 太原
博客专栏
-
Java编程Step-by...
浏览量:156200
文章分类
最新评论
-
liuwei1981:
尘土飞扬 写道取整的函数,返回值是double?测试下就能看出 ...
86.Math类的使用 -
尘土飞扬:
取整的函数,返回值是double?
86.Math类的使用 -
尘土飞扬:
终于清楚了Date和Calendar的来龙去脉谢谢
90.Java日期处理 -
谁说我不是会员:
liuwei1981 写道hupu_2014 写道根据你的执行 ...
65.对象的构造以及初始化 -
谁说我不是会员:
有的地方能优化,有的不能,不能一概而论。
有必要用StringBuilder的append代替String的+字符串连接运算么
网站的访问速度是由多个因素所共同决定的,这些因素例如应用程序的响应速度、网络带宽、服务器性能、与客户端之间的网络传输速度等等。其中最重要的一个因素是应用程序本身的响应速度,因此当你为网站性能所苦恼时,你第一个需要着手进行处理的便是尽可能的提升应用程序的执行速度,你可以使用缓存或者是优化代码的执行效率来提升应用程序的速度。
但是,本文并不是介绍如何来提升应用程序的执行效率,前面提到的只不过是为了防止您病急乱投医。在确保您的应用程序的性能已经达到足够好,同时服务器的性能也完全满足的情况下,不妨来试试网页压缩来进一步提升网页的浏览速度,而且非常重要的是,它完全不需要任何的成本,只不过是会让您的服务器CPU占用率稍微提升一两个百分点而已或者更少。
网页压缩是一项由 WEB 服务器和浏览器之间共同遵守的协议,也就是说 WEB 服务器和浏览器都必须支持该技术,所幸的是现在流行的浏览器都是支持的,包括 IE、FireFox、Opera 等;服务器有 Apache 和 IIS 等。双方的协商过程如下:
- 首先浏览器请求某个 URL 地址,并在请求的头 (head) 中设置属性 accept-encoding 值为 gzip, deflate,表明浏览器支持 gzip 和 deflate 这两种压缩方式(事实上 deflate 也是使用 gzip 压缩协议,下面我们会介绍二者之间的区别);
- WEB 服务器接收到请求后判断浏览器是否支持压缩,如果支持就传送压缩后的响应内容,否则传送不经过压缩的内容;
- 浏览器获取响应内容后,判断内容是否被压缩,如果是则解压缩,然后显示响应页面的内容。
在实际的应用中我们发现压缩的比率往往在 3 到 10 倍,也就是本来 50k 大小的页面,采用压缩后实际传输的内容大小只有 5 至 15k 大小,这可以大大节省服务器的网络带宽,同时如果应用程序的响应足够快时,网站的速度瓶颈就转到了网络的传输速度上,因此内容压缩后就可以大大的提升页面的浏览速度。
接下来我们介绍几种常用的环境下如何启用网页压缩功能。
如果您的 WEB 应用程序是跑在 Tomcat 服务器下的,而且直接使用 Tomcat 所提供的 HTTP 服务,那建议你马上动手,因为实在是太简单了,你只需要在 server.xml 配置文件中给 HTTP Connector 增加一个 compression 的参数值为 on 并重启 Tomcat 服务器就立刻生效,配置如下:
Tomcat 采用的是 HTTP/1.1 的 GZIP 压缩协议,它会根据浏览器送过来的请求中的 accept-encoding 值是否包含 gzip 来判断浏览器是否支持 gzip 压缩协议,如果浏览器支持就启用 gzip 压缩,否则就不进行任何压缩处理。Tomcat 中还有另外一个参数 compressableMimeType,这个参数可以用来指定压缩哪种类型的内容,例如可以指定该配置值为:text/html,text/plain ,则只压缩 contentType 为 text/html 和 text/plain 的页面,不过您最好也将 css 和 javascript 文件也算在压缩的文件类型中,因为这两者的压缩效果也十分的明显。
在 apache 1.3 版本,大家常用 mod_gzip 对输出内容进行压缩,现在主流的浏览器都支持 gzip 解压缩。在 apache2 下,这个模块换名为 mod_deflate
,对应的模块文件名是 mod_deflate.so
。mod_gzip 本文不做介绍,下面描述一下在 Apache 2 下如何启用并配置 mod_deflate
模块。默认安装的 Apache 不管是 Windows 还是 Linux/Unix,都是不启用该模块的, Linux/Unix 下甚至不带该模块,你需要手工编译这个模块。
下面我们分别介绍在 Windows 和 Linux 操作系统下如何启用并配置 mod_deflate
模块。
在 Windows 下采用安装程序安装的 Apache 服务器已经带有 deflate 所需要的模块 mod_deflate.so
和 mod_headers.so
,我们只需要在 httpd.conf 配置文件中启用并进行相关的配置即可,配置如下:
LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so <Location /> # Insert filter SetOutputFilter DEFLATE # Netscape 4.x has some problems... BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.06-4.08 have some more problems BrowserMatch ^Mozilla/4\.0[678] no-gzip # MSIE masquerades as Netscape, but it is fine # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48 # the above regex won't work. You can use the following # workaround to get the desired effect: BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html # Don't compress images SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary # Make sure proxies don't deliver the wrong content Header append Vary User-Agent env=!dont-vary </Location>
而如果是 Linux/Unix 操作系统,如果你没有在编译安装的过程中将所需要的两个模块 mod_deflate
和 mod_headers
编译进去的话,那就稍微有点麻烦,首先我们先看如何在编译安装 Apache 过程中也同时编译这两个模块,请在执行 configure 程序时增加两个参数分别是:
这样在编译完 Apache 后就可以直接在 httpd.conf 中启用并配置 deflate
模块了,配置的方法跟 Windows 平台下是相同的。
如果说您的 Apache 已经在运行了,不想再重新编译一次,那也可以选择只编译 deflate
模块所需的文件 mod_deflate.c
和 mod_headers.c
。这两个文件位于 {apache-src}/modules/filters/
目录下(其中 {apache-src}
为 apache 源文件所在的目录)。使用如下命令来单独编译这两个源文件。
其中 {apache-bin}
为 Apache 安装目录下的 bin 目录,接下来在 httpd.conf 直接配置该模块即可。
很多时候你在单独编译 deflate
模块的时候可能会碰到编译错误,提示是:
Cannot load /opt/apache/modules/mod_deflate.so into server: /opt/apache/modules/mod_deflate.so: undefined symbol: deflate
解决的方法如下:
编辑 /usr/local/apache2/bin/apr-config
文件修改其中的 LDFLAGS 值为 "-lz",然后再重新编译 mod_deflate
模块,apxs -ica mod_deflate.c
即可。
为了省却不必要的麻烦,请尽量在编译安装时直接加上 --enable-deflate --enable-headers
参数。
以上是目前比较流行的两个 WEB 服务器软件以及 Tomcat 服务器对于页面压缩的配置方法;其他的一些 J2EE 应用服务器如果不支持这个功能的话可以考虑利用过滤器(Servlet Filter)来进行处理,具体的代码以及配置方法可以参考 Resin 服务器所提供的文档。但是有一点需要提醒各位读者的是,本文介绍的访问只是在服务器本身的响应速度已经足够优化的情况下进行,也就是说在带宽成为系统瓶颈的时候才来考虑该方案。
发表评论
-
cas4实现sso(一)cas简介
2015-01-15 16:59 903sso(单点登录)在实际的应用开发中经常会用到,特别是软件 ... -
Js固定数字的小数位
2012-07-16 14:22 945很多时候,需要在页面展示的时候,将数字计算的结果固定小数位。 ... -
amchart设置纵坐标起始值与间隔
2012-07-11 09:57 1017<!--StartFragment --> ut ... -
xloadTree结合Struts2实现动态树结构
2010-12-14 11:12 1807前一段时间做一个管理系统,需要完成一个动态树目录功能,一 ... -
java keytool 安全证书学习
2009-11-24 10:39 4296keytool生成证书 验证是否已创建过同名的证书 ... -
tomcat5下jsp出现getOutputStream() has already been called for this response异常的原因和解决
2009-09-25 11:41 1408在tomcat5下jsp中出现此错误一般都是在jsp中使 ... -
Flex Netbeans 开发环境环境搭建
2009-09-22 12:07 36421.下载安装netbeans6(我的版本是6.7.1) ... -
DWR 从session中取出数据
2009-06-19 14:48 1257需要导入的类有: import org.directw ... -
springSide3框架的笔记
2009-06-15 10:46 5103首先,从官网下载的springSide3并不具备我所需要的ja ... -
Struts2 获取Cookie操作
2009-06-06 14:06 3287Struts2可以通过ServletActionContext ... -
struts2 Action中获取request, response对象的方法
2009-04-17 15:02 1616strus2 Action中获取request, ... -
struts2 使用oscache
2009-04-09 15:13 1411在web.xml里增加如下内容: <filter> ... -
HTTPS和HTTP的区别
2009-04-09 10:39 1045HTTPS(Secure Hypertext Transf ... -
web工程部署到WebLogic后Ajax执行不正常
2009-04-07 11:48 1561最近一个工程部署到weblogic服务器中,其他问题修改后 ... -
使用struts2的datetimepicker标签时候遇到JS错误:dojo未定义错误
2008-11-24 17:18 3021一个页面中使用了datetimepicker标签,结果浏览器提 ... -
dwr的中文简明教程下载
2008-09-25 10:32 4109学习dwr的时候,找的了一份简明中文教程,不错,很多例子 ... -
Struts2标签 数据标签--property标签
2008-09-19 16:36 2461property 标签作用就是输出指定值,property ... -
Struts2标签 数据标签--url标签
2008-09-19 16:33 2044url标签用于生成一个url地址,可以通过为url标签指定 ... -
Struts2标签 数据标签--set标签
2008-09-19 16:27 2919set标签用于将某个值放入指定范围,例如applicat ... -
Struts2标签 数据标签--push标签
2008-09-19 16:22 1949push标签用于将某个值放到ValueStack的栈顶,从 ...
相关推荐
在我们无法更换服务器或提高服务器速度的情况下,要想让我们的页面不裸在用户面前,只能从缩小页面、减少HTTP请求和提高客户端速度等方面来想办法。 1.缩小页面:利用(X)HTML CSS方式搭建网站结构,并使用程序自动...
三种运行模式:可将站点全部页面高为动态、静态及伪态格式,大大提高浏览速度及搜索引擎的搜录量。 HTML生成文件存放结构选择。 独有利于Alexa收录的info.txt文件和搜索引擎蜘蛛爬行文件Robots.txt 模板程序分离,...
它提升了可压缩效果差数据的大文件和使用BLAKE2校验和时的解压速度。 3. RAR 5.0 压缩文件格式的改变: a) 文件时间存储为协调世界时(UTC),替代以前的本地时间,这让文件在不同的时区内 的交流更直观; b) ...
三种运行模式:可将站点全部页面高为动态、静态及伪态格式,大大提高浏览速度及搜索引擎的搜录量。 HTML生成文件存放结构选择。 独有利于Alexa收录的info.txt文件和搜索引擎蜘蛛爬行文件Robots.txt 模板程序分离...
三种运行模式:可将站点全部页面高为动态、静态及伪态格式,大大提高浏览速度及搜索引擎的搜录量。 HTML生成文件存放结构选择。 独有利于Alexa收录的info.txt文件和搜索引擎蜘蛛爬行文件Robots.txt 模板程序分离,...
三种文件状态:可将站点全部页面高为动态、静态及伪态格式,大大提高浏览速度及搜索引擎的搜录量。 5种生成文件存放结构选择,5生成文件命名形式选择,可随意定生成的扩展名,一切更可能的根据您的喜好DIY。 独有利...
三种运行模式:可将站点全部页面高为动态、静态及伪态格式,大大提高浏览速度及搜索引擎的搜录量。 HTML生成文件存放结构选择。 独有利于Alexa收录的info.txt文件和搜索引擎蜘蛛爬行文件Robots.txt 模板程序分离,...
多线程版本的 RAR 压缩算法提高了在有数个 CPU、多核心 CPU 和使用超线 程技术的处理器的计算机上的压缩速度。多线程默认被启用,但是你可以在 “设置”对话框的“常规”部分中禁用它。 在命令行...
另一方面,重新安排框架上下文的方法可以提高浏览效率,但是使用具有各种硬件配置的数据处理中心不容易加速。 在本文中,我们提出了一种基于平台检测的基于变化检测的视频压缩系统,该系统易于加速并准确保留重要帧...
3.利用aspupload上传组件获取会员上传的图片,有效提高执行效率,节约服务器资源。采用aspjpeg组件自动生成缩略图,大大加快网页的访问速度。 4.严密的系统安全防范机制,杜绝一切注入和上传漏洞攻击。 5.全方位的...
页面大小可成倍变小,降低流量,提高网页浏览速度。 23.生成页面的目录,名称,扩展名随意设置 生成页面的名称和目录也是灵活的。根据需要随意设置。 24.智能翻译模板,一键翻译皮肤 一般只需要做一种语言的模板...
页面大小可成倍变小,降低流量,提高网页浏览速度。 23.生成页面的目录,名称,扩展名随意设置 生成页面的名称和目录也是灵活的。根据需要随意设置。 24.智能翻译模板,一键翻译皮肤 一般只需要做一种语言的模板...
3.利用aspupload上传组件获取会员上传的图片,有效提高执行效率,节约服务器资源。采用aspjpeg组件自动生成缩略图,大大加快网页的访问速度。 4.严密的系统安全防范机制,杜绝一切注入和上传漏洞攻击。 5.全方位的...
从小波滤波器的多相位矩阵出发,利用因子分解方法实现了小波变换由传统卷积模式转变到提升体制,进而在此基础上实现了整数小波变换,并利用零树编码算法对变换后的系数进行了重新组织。通过综合研究它们各自的特点,...
KONoise很好的消除了不规则的噪声,因此,处理后图像的压缩效率大幅提高,体积大小相同的图像可以保留更丰富的细节。在图像上传、博客浏览等应用中,能有效改善用户体验。 图像降噪KONoise v2.5 主要更新: a...
对您的作用浏览速度提高了4倍,通过阻止第三方广告和其他有害内容来加快网页显示的速度,从而节省了理智和带宽。使技术支持诈骗者蒙受伤害识别并阻止浏览器更衣室,浏览器劫持者以及其他吓人战术,这些技术支持诈骗...
5.内置页面gzip压缩加速,页面压缩后大小可减少70%以上,加速浏览速度 6.自定义url伪静态标识符,每个站的url地址都不一样,优化加分。 7.自定义广告调用标识符,几个代码搞定广告调用 8.基于Smarty模板引擎,...
主要功能有文件管理,文件加密,ZIP压缩,网络浏览,注册表编辑器,内建图片查看器。填补PocketPC上自带“资源管理器”的诸多不足。 软件特点: 1.支持文件加密,可以使用内置的RC2(40bit)或DES(56bit)加密算法,并...
这个系统包含了一个完整的新闻发布和管理平台的源码,允许用户创建、编辑、删除和浏览新闻内容。它提供了丰富的功能,如新闻分类、搜索、评论以及管理员对内容的审核等。明日JSP新闻系统的源码资料包"jspnews.rar"是...