本发明涉及网络技术领域,尤其涉及一种网页优化方法及装置。
背景技术:
随着网络进入Web(网络)2.0时代,网页中引用的静态资源文件越来越多,大量的CSS(Cascading Style Sheets,层叠样式表)、JavaScript和图片被引入到页面中,以增强Web站点的表现力和交互能力。但随着网页中的静态资源文件的增加,尤其是JavaScript的增加,使网页加载的速度受到了很大的影响。所以优化页面中引用的静态资源文件成为提高加载网页速度的关键。
当前加载网页的主要技术是针对网页中的静态资源文件进行优化,例如最小化或合并CSS和JavaScript文件,转换图片格式,以及删除页面内容中的注释和空白等。对网页中的静态资源文件进行优化是网页发布前通过工具(例如:YUI Comprosessor)对网页中的静态资源文件进行优化,或在Web服务器上对网页中的静态资源文件进行优化,或边缘代理服务器上对网页中的静态资源文件进行优化。上述对静态资源文件的优化都有明显不足,例如工具不能针对不同客户端做实时相应的优化,web服务器的优化会降低并发能力,边缘代理不能针对全网用户等。
技术实现要素:
本发明要解决的技术问题是,提供一种网页优化方法及装置,克服现有技术中不能实时地和高并发地针对全网用户对网页中的静态资源文件进行优化的缺陷。
本发明采用的技术方案是,所述一种网页优化方法,包括:
当客户端向网络服务器请求网页数据时,反向代理服务器与所述网络服务器建立连接,并接收所述网络服务器发送的网页数据描述信息;
反向代理服务器基于对所述网页数据描述信息解析得到的解析结果,从所述网络服务器获取所述网页数据中的静态资源文件;
反向代理服务器对接收到的所述网络服务器发送的所述静态资源文件进行优化,并将优化后的静态资源文件发送至所述客户端。
进一步地,所述静态资源文件包括以下数据类型中的一种或多种:
层叠样式表CSS文件、JavaScript文件和图片文件。
进一步地,所述对所述静态资源文件进行优化的方式包括以下静态资源文件优化方式中的一种或多种:
删除静态资源文件中的超级文本标记语言HTML注释、HTML空格、HTML回车和HTML换行;
最小化静态资源文件中的CSS文件、合并静态资源文件中的CSS文件和内嵌静态资源文件中的引用CSS文件;
最小化静态资源文件中的JavaScrip文件、合并静态资源文件中的JavaScrip文件和内嵌静态资源文件中的JavaScrip文件;
转换图片文件格式和内嵌静态资源文件中的图片文件。
进一步地,所述最小化静态资源文件中的CSS文件包括:删除静态资源文件中的CSS文件的注释、回车符、换行符和制表定位Tab符;
所述合并静态资源文件中的CSS文件包括:将相邻的CSS文件合并为一个CSS文件;
所述内嵌静态资源文件中的引用CSS文件包括:将静态资源文件中引用的CSS文件嵌入所述网页数据中,并删除所述引用的CSS文件的引用标签;
所述最小化静态资源文件中的JavaScrip文件包括:删除静态资源文件中的JavaScrip文件的注释、回车符、换行符和空格符;
所述合并静态资源文件中的JavaScrip文件包括:在预设的JavaScrip文件容量限制下,将所述静态资源文件中的JavaScrip文件合并为一个或多个JavaScrip文件;
所述内嵌静态资源文件中的JavaScrip文件包括:将小于预设的JavaScrip文件容量的JavaScrip文件嵌入所述网页数据中;
所述转换图片文件格式包括:基于客户端的类型,将图片文件格式转换为小于预设的图片容量的图片文件格式;
所述内嵌静态资源文件中的图片文件包括:基于客户端的类型,将小于预设的图片容量的图片文件嵌入所述网页数据中。
本发明还提供一种网页优化装置,设置于反向代理服务器,所述装置包括:
接收模块,用于当客户端向网络服务器请求网页数据时,与所述网络服务器建立连接,并接收所述网络服务器发送的网页数据描述信息;
解析模块,用于基于对所述网页数据描述信息解析得到的解析结果,从所述网络服务器获取所述网页数据中的静态资源文件;
优化模块,用于对接收到的所述网络服务器发送的所述静态资源文件进行优化,并将优化后的静态资源文件发送至所述客户端。
进一步地,所述静态资源文件包括以下数据类型中的一种或多种:
层叠样式表CSS文件、JavaScript文件和图片文件。
进一步地,所述优化模块包括以下一个或多个模块:
超级文本标记语言HTML优化模块,用于删除静态资源文件中的超级文本标记语言HTML注释、HTML空格、HTML回车和HTML换行;
CSS优化模块,用于最小化静态资源文件中的CSS文件、合并静态资源文件中的CSS文件和/或内嵌静态资源文件中的引用CSS文件;
JavaScrip优化模块,用于最小化静态资源文件中的JavaScrip文件、合并静态资源文件中的JavaScrip文件和/或内嵌静态资源文件中的JavaScrip文件;
图片优化模块,用于转换图片文件格式和/或内嵌静态资源文件中的图片文件。
进一步地,所述CSS优化模块,具体用于采用以下一种或多种方式对所述静态资源文件进行优化:
删除静态资源文件中的CSS文件的注释、回车符、换行符和制表定位Tab符;
将相邻的CSS文件合并为一个CSS文件;
将静态资源文件中引用的CSS文件嵌入所述网页数据中,并删除所述引用的CSS文件的引用标签。
进一步地,所述JavaScrip优化模块,具体用于采用以下一种或多种方式对所述静态资源文件进行优化:
删除静态资源文件中的JavaScrip文件的注释、回车符、换行符和空格符;
在预设的JavaScrip文件容量限制下,将所述静态资源文件中的JavaScrip文件合并为一个或多个JavaScrip文件;
将小于预设的JavaScrip文件容量的JavaScrip文件嵌入所述网页数据中。
进一步地,图片优化模块,具体用于采用以下一种或多种方式对所述静态资源文件进行优化:
基于客户端的类型,将图片文件格式的转换为小于预设的图片容量的图片文件格式;
基于客户端的类型,将小于预设的图片容量的图片文件嵌入所述网页数据中。
采用上述技术方案,本发明至少具有下列优点:
本发明所述一种网页优化方法及装置,能够针对访问网络服务器的所有用户进行网页优化,在用户客户端接收网页数据的过程中,对网页进行优化,极大的提高了客户端加载网页的速度。
附图说明
图1为本发明第一实施例的网页优化方法流程图;
图2为本发明第二实施例的网页优化装置组成结构示意图。
具体实施方式
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
本发明第一实施例,一种网页优化方法,应用于反向代理服务器,如图1所示,包括以下具体步骤:
步骤S101,当客户端向网络服务器请求网页数据时,与网络服务器建立连接,并接收网络服务器发送的网页数据描述信息。
具体的,步骤S101,包括:
客户端向反向代理服务器发送网页数据请求,反向代理服务器与网页数据对应的网络服务器建立连接;
反向代理服务器向网络服务器请求网页数据描述信息;
反向代理服务器接收网络服务器发送的网页数据描述信息。
步骤S102,基于对网页数据描述信息解析得到的解析结果,从网络服务器获取网页数据中的静态资源文件。
具体的,步骤S102,包括:
对接收到的网页数据描述信息进行解析;
根据网页数据描述信息的解析结果,向网络服务器请求网页数据中的静态资源文件和除静态资源文件外的其他文件;
接收网络服务器发送的网页数据中的静态资源文件和除静态资源文件外的其他文件;
将除静态资源文件外的其他文件发送至客户端。
其中,静态资源文件包括以下数据类型中的一种或多种:
层叠样式表CSS文件、JavaScript文件和图片文件。
步骤S103,对接收到的网络服务器发送的静态资源文件进行优化,并将优化后的静态资源文件发送至客户端。
具体的,步骤S103,包括:
对接收到的网络服务器发送的静态资源文件进行优化,并将优化后的静态资源文件发送至客户端;
其中,对静态资源文件进行优化的方式包括以下静态资源文件优化方式中的一种或多种:
删除静态资源文件中的HTML(Hyper Text Markup Language,超级文本标记语言)注释、HTML空格、HTML回车和HTML换行等;
最小化静态资源文件中的CSS文件、合并静态资源文件中的CSS文件和内嵌静态资源文件中的引用CSS文件;
最小化静态资源文件中的JavaScrip文件、合并静态资源文件中的JavaScrip文件和内嵌静态资源文件中的JavaScrip文件;
转换图片文件格式和内嵌静态资源文件中的图片文件。
最小化静态资源文件中的CSS文件包括:删除静态资源文件中的CSS文件的注释、回车符、换行符和Tab(制表定位)符等;
合并静态资源文件中的CSS文件包括:将相邻的CSS文件合并为一个CSS文件;其中,相邻的CSS文件为静态资源文件中顺序相连的一个或多个CSS文件。若静态资源文件中的CSS文件之间间隔有其他文件,则间隔有其他文件的CSS文件判定为不相邻。
内嵌静态资源文件中的引用CSS文件包括:将静态资源文件中引用的CSS文件嵌入网页数据中,并删除被引用的CSS文件的引用标签。
最小化静态资源文件中的JavaScrip文件包括:删除静态资源文件中的JavaScrip文件的注释、回车符、换行符和空格符;
合并静态资源文件中的JavaScrip文件包括:在预设的JavaScrip文件容量限制下,将静态资源文件中的JavaScrip文件合并为一个或多个JavaScrip文件;
内嵌静态资源文件中的JavaScrip文件包括:将小于预设的JavaScrip文件容量的JavaScrip文件嵌入网页数据中。
转换图片文件格式包括:基于客户端的类型,将图片的转换为小于预设的图片容量的图片文件;
内嵌静态资源文件中的图片文件包括:基于客户端的类型,将小于预设的图片容量的图片文件嵌入网页数据中。
例如:对静态资源文件进行优化的方式包括以下静态资源文件优化方式中的一种或多种:
删除静态资源文件中的没有实际用途的HTML注释,保留作为浏览器hacker技术使用的注释;删除没有实际用途的空格、回车和换行符等;
删除静态资源文件中的CSS文件的注释、回车符、换行符和Tab(制表定位)符等;
将相邻的CSS文件进行合并为一个CSS文件;
将静态资源文件中引用的CSS文件嵌入网页数据中,并删除被引用的CSS文件的引用标签。
删除静态资源文件中的JavaScrip文件的注释、回车符、换行符和空格符;
在预设的JavaScrip文件容量限制下,将静态资源文件中的JavaScrip文件合并包括:一个或多个JavaScrip文件;并删除合并后的JavaScrip文件中的注释和空格符等;
内嵌静态资源文件中的JavaScrip文件包括:将小于预设的JavaScrip文件容量的JavaScrip文件嵌入网页数据中。
转换图片文件格式包括:根基于客户端的类型,将图片文件格式的转换为小于预设的图片容量的图片文件格式;
内嵌静态资源文件中的图片文件包括:基于客户端的类型,将小于预设的图片容量的图片文件嵌入网页数据中。
将优化后的静态资源文件发送至客户端。
本发明具有以下优势:
1)根据不同客户端类型的进行针对性的优化,保证了最佳的客户端用户体验。
2)将静态资源文件及优化后的静态资源文件进行缓存,避免了每次获取静态资源文件导致的开销,同时缓存优化后的静态资源文件使得不需要每次针对相同的静态资源文件在相同的优化策略下进行优化。
3)反向代理服务器每次优化一部分页面数据,避免了一次性优化所有页面数据占用太长时间的缺点。通过将已经优化好的页面数据或不需要优化的页面数据尽早发送到客户端,不会对页面的TTFB(Time To First Byte)造成影响。
4)使用异步的方式获取页面中的子资源,降低了反向代理服务器的开销,保证了系统的并发。
本发明第二实施例,一种网页优化装置,设置于反向代理服务器,如图2所示,包括以下具体步骤:
接收模块100,用于当客户端向网络服务器请求网页数据时,与网络服务器建立连接,并接收网络服务器发送的网页数据描述信息。
具体的,接收模块100,用于:
客户端向反向代理服务器发送网页数据请求,反向代理服务器与网页数据对应的网络服务器建立连接;
反向代理服务器向网络服务器请求网页数据描述信息;
反向代理服务器接收网络服务器发送的网页数据描述信息。
解析模块200,用于基于对网页数据描述信息解析得到的解析结果,从网络服务器获取网页数据中的静态资源文件。
具体的,解析模块200,用于:
对接收到的网页数据描述信息进行解析;
根据网页数据描述信息的解析结果,向网络服务器请求网页数据中的静态资源文件和除静态资源文件外的其他文件;
接收网络服务器发送的网页数据中的静态资源文件和除静态资源文件外的其他文件;
将除静态资源文件外的其他文件发送至客户端。
其中,静态资源文件包括以下数据类型中的一种或多种:
层叠样式表CSS文件、JavaScript文件和图片文件。
优化模块300,用于对接收到的网络服务器发送的静态资源文件进行优化,并将优化后的静态资源文件发送至客户端。
具体的,优化模块300,用于:
对接收到的网络服务器发送的静态资源文件进行优化,并将优化后的静态资源文件发送至客户端;
其中,优化模块300包括以下一个或多个模块:
HTML优化模块301、CSS优化模块302、JavaScrip优化模块303和图片优化模块304。
HTML优化模块301,用于删除静态资源文件中的HTML(Hyper Text Markup Language,超级文本标记语言)注释、HTML空格、HTML回车和HTML换行等;
CSS优化模块302,用于最小化静态资源文件中的CSS文件、合并静态资源文件中的CSS文件和内嵌静态资源文件中的引用CSS文件;
CSS优化模块302,具体用于采用以下一种或多种方式对所述静态资源文件进行优化:
删除静态资源文件中的CSS文件的注释、回车符、换行符和Tab(制表定位)符等;
将相邻的CSS文件合并为一个CSS文件;
将静态资源文件中引用的CSS文件嵌入网页数据中,并删除被引用的CSS文件的引用标签。
JavaScrip优化模块303,用于最小化静态资源文件中的JavaScrip文件、合并静态资源文件中的JavaScrip文件和内嵌静态资源文件中的JavaScrip文件。
JavaScrip优化模块303,具体用于采用以下一种或多种方式对所述静态资源文件进行优化:
删除静态资源文件中的JavaScrip文件的注释、回车符、换行符和空格符;
在预设的JavaScrip文件容量限制下,将静态资源文件中的JavaScrip文件合并为一个或多个JavaScrip文件;
将小于预设的JavaScrip文件容量的JavaScrip文件嵌入网页数据中。
图片优化模块304,用于转换图片文件格式和内嵌静态资源文件中的图片文件。
图片优化模块304,具体用于采用以下一种或多种方式对所述静态资源文件进行优化:
基于客户端的类型,将图片文件格式的转换为小于预设的图片容量的图片文件格式;
基于客户端的类型,将小于预设的图片容量的图片文件嵌入网页数据中。
通过具体实施方式的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。