网站页面静态化技术交流文档_第1页
网站页面静态化技术交流文档_第2页
网站页面静态化技术交流文档_第3页
网站页面静态化技术交流文档_第4页
网站页面静态化技术交流文档_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、12l创意回顾l背景技术l关键词l系统简介l系统设计l系统实现流程l参考资料lQ&A3l目前随着互联网技术的深入发展和技术的不断日新月异,互联网应用程序的功能性和复杂性也在日益提高,从而,要求这些应用程序的性能表现越来越苛刻,为了提高互联网应用程序的性能,业界都采用多种技术来提高互联网访问速度,降低服务器运算负荷。l公司的数商产品也不例外,随着其逐渐成熟以及产品用户的激增,产品的性能瓶颈日益凸现,我们都希望伴随着数商3.0新产品的推出,能够较为有效的解决这个问题。l本文档介绍的动态执行页面静态化的系统及方法,能够在程序执行期把用户访问过的页面保存起来,存储在服务器的磁盘上,成为不带有动

2、态语法解析程序的纯静态资源文件,当用户再次请求浏览相同的页面时,就会直接访问这些静态资源文件,不会再去重复且耗时的解析动态程序,从而显著降低服务器运算负担,提高互联网资源利用率。 4目前实现页面静态化技术的方式有如下所列三种:非运行期静态化方法: 该方法一般实现为管理员在网站后台发布新内容的同时就立刻生成相应内容的静态页面 。客户后期访问的时候都是直接访问的这个静态资源,这个静态资源在访问之前就存在并存放到指定位置,因此称为此页面的生成是“非运行期静态”的。例如,我们集团的“一大把”项目的页面静态化就是这种方式实现的。运行期利用服务器缓存所实现的页面静态化技术 该方法一般实现于客户端程序或资源

3、性能受限的手机、PDA产品。它通常利用IE的缓存和服务器的缓存技术实现静态页面的存储与访问。运行期生成静态化资源的页面静态化技术 该方法一般实现于客户端程序或资源性能受限的手机、PDA产品。它通常利用IE的缓存和服务器的缓存技术实现静态页面的存储与访问。5lUrl Rewrite是Apache用来实现页面网络地址重定向的技术。Apache的Rewrite模块,提供了一个基于规则的重写(rewrite,也许译为重构更为合适)引擎,来实时重写发送到Apache的请求URL。l这个模块使用一个基于正则表达式解析器开发的重写引擎,根据web管理员定义的规则来实时(on the fly)重写请求URL。

4、它支持任意数目的重写规则,以及附加到一条规则上的任意数目的规则条件,从而提供了一套非常灵活和功能强大的URL处理机制。URL处理操作的实施与否,依赖于各种各样的条件检查,如检查服务器变量、环境变量、HTTP头字段、时间戳的值,甚至外部数据库的检索结果。这个模块可以在服务器范围内(http.conf)、目录范围内(.htaccess)或请求串(query-string)的一部分处理有关的URL。重写的结果URL,可以指向一个站内的处理程序、指向站外的重定向或者一个站内的代理。l利用这种技术,我们可以将动态请求的网络地址按照我们既有的规则(动态页面请求参数与静态化的页面名称相互转换),转换为静态页

5、面网络地址。l例如:网站页面是动态的网面http:/ 使用UrlRewrite转换后 可以访问静态化后的页面http:/ first SSI page/title/headbody欢迎您(于! echo var=date_local )访问本网站。/html 标记在上面文档中的“! ”为语句,其结构表明了SSI命令会被服务器翻译执行,将翻译的结果送到客户端。我们可以在浏览器中用“查看源文件观察源代码:htmlheadtitlemy first SSI page/title/headbody欢迎您(于dec 06 1999)访问本网站。/html7l文档中的html被直接传到了客户端,而SSI命

6、令得到了执行。SSI代码在客户端是不可见的,客户端只能看到它执行的效果。在网站维护中常常碰到的一个问题就是,网站的结构已经固定,却为了更新一点内容而不得不重做一大批网页。则SSI技术提供了将一个网站的基本结构放在几个简单的HTML文件中,而HTML内可变化的内容用SSI技术提供的include命令得以执行,这些SSI的include命令包含的片断,我们称之为组件。以后我们要做的只是将文本传到服务器,让程序按照模板和include的页面片断自动拼装并生成网页,从而使管理大型网站变得容易。l数商使用SSI技术主要使用的是#include指令,该指令用来实现服务器端页面包含。l其具体的指令格式如下:

7、 virtual 指定相对于服务器文档根目录的位置 8l为实现动态执行期的页面静态化技术,我们的页面静态化系统主要由以下5部分构成:l1.用户界面层 该部分是系统与用户交互的接口,该部分由框架HTML页面组成,框架页面引用SSI技术,拼装组件页面。l2.页面组件层 该层主要由本专利发明自定义的框架页面的组件占位符构成,该层描述了所有组件的信息,包括组件名称,组件实例编号,组件中文名称,页面URL Rewrite规则。l3.Web控制层 该层是实现动态静态化技术的核心层。URL Rewrite定位静态资源,是否实施静态化策略,后台动态程序的访问都由此层来控制。l4.Web资源层 该层存放的是客户

8、网站组件的静态化资源文件。所有已被静态化的页面全部在这里存放。l5.应用层 该层是组件动态程序的执行层,如果所需访问的组件没有静态化资源,则请求会转发到这里来动态的执行并返回客户组件的实际内容。 910l确定可以页面静态化的内容确定可以页面静态化的内容 1)各种内容数据本身可以静态化; 2)改变频率比较低的信息类表,比如信息、产品基本分类展示等可以静态化 3)瞬时的、变化频繁的列表不能实现静态化;比如,热点产品排行展示l实现页面静态化的技术实现页面静态化的技术 1)Apache的Mod_rewrite模块,实现请求转发功能; 2)通过Filter,把动态请求转化为静态页面,主要思路就是当动态请

9、求处理结束后,先把响应结果存储在文件中,然后再返回; 3)应用Spring的AOP技术,实现对网站静态页面的统一管理 4)JSP的标签技术,可以封装动态请求,可以在不改变开发人员编码习惯的情况下,把动态请求转换为静态请求1112l网站页面是由基础模板HTML页面和许多由SSI技术所提供的include函数指令组装的页面组件占位符构成的。例如: l其中/comp-frontMember_Login-123即为服务器所要执行的行的语句(即组件占位符)。l页面除了包含这些用include命令标识的组件外,同时也包括其它Internet资源信息,例如:文本、图形、插件或应用程序信息等等。l页面组件占位

10、符根据标准的SSI技术,在Apache服务器端将组件内容逐个解析,然后在服务器端拼装为一个整体的页面返回给客户终端浏览器。l客户访问网站页面时,每个组件在页面装载事件中通过SSI向apache服务器发送请求;请求地址为:/comp-ID-Name;ID为组件类型名称标识,Name为组件实例名称。l此步骤如图201所示。13lApache服务器接收到请求后,利用Apache 的Url Rewrite模块,将组件占位符转换请求转换为组件静态化文件路径。l如果在Apache服务器上能够找到目标目录下对应的组件静态页面,模板HTML页面利用SSI的include技术直接拼装这些静态化的组件页面内容,迅

11、速返回给客户端。l否则,再次通过Url Rewrite模块,将静态化路径转换为后端应用程序服务器(例如JBoss,一个开源的符合J2EE规范的应用服务器)可以解析执行的动态程序访问地址。然后Apache服务器通过连接器,将这个地址交由动态程序引擎执行,得到结果内容后,这些内容会再次通过连接器,传回Apache服务器。这时,Apache服务器的模板HTML页面会同样利用SSI技术的include命令拼装这些通过动态程序解析的组件页面内容,返回给客户端。l此步骤如图202和203所示。14l后台应用服务器接收到请求后,根据开源的应用程序框架Spring与 Struts的配置,转到相应的Action

12、动作类中处理此请求,动作函数名以 及动作函数中定义的方法可以按照规则从组件占位符ID中解析出来, 并通过网站标识、组件标识ID、实例名称Name查找该组件在制作系统 中添加的配置参数,正确解析组件内容。l开源的应用程序框架Struts处理完毕后,根据组件配置参数中的一个页面流转参数,forward到一个J2EE标准的视图实现技术JSP中。l最后将组件JSP视图的内容返回给客户终端浏览器。l此步骤如图204所示。15l与此同时,通过访问一个统一的静态化控制接口,来判断该3步中得到的内容是否需要静态化。l是否需要页面静态化的判断主要有以下两个级别: (一)产品级的组件开关; (二)客户网站级。l组

13、件产品级开关,每个组件分别定义一个,用来控制该组件在产品业务流程层次上是否应该实现静态化技术。所有组件的产品级开关都用一个标准的XML文档来记录,程序通过解析此文档,就可以明确地知道哪些组件实施静态化技术。而同时,利用XML文档来存储,也非常方便的利于这些关键参数的修改与维护。l客户网站级,则出于客户网站运营的角度考虑,来控制是否对单个客户网站实施静态化。与组件的产品级开关类似,每个客户网站是否实施静态化技术也是利用解析存储在Apache服务器上的文件来维护,修改与维护此参数同样非常的高效与方便。l静态化开关的控制逻辑如下所述: 首先判断该客户网站是否需要进行静态化技术; 如果需要,再判断该组

14、件在软件产品级上是否支持静态化技术,如果支持就进入下一步骤,实施具体的静态化;否则不实施静态化。l此步骤如图二205所示。16l此步,利用一个实现了JspWriter的类,在JSP页面中用新写的类作为out的实现类,并在JSP构造完视图后,把视图内容按照一定的静态化文件路径生成策略,存储到目标地址。l生成静态化页面采用独立的线程执行。兼顾效率和安全。l此步如图二206所示。172 2 0 0 1 1 . . 客客 户户 访访 问问 组组 件件 化化 的的 S S S S I I 聚聚 合合 页页 面面2 2 0 0 2 2 . . 根根 据据 U U r r l l R R e e w w r r i i t t e e 规规 则则 , 将将 页页 面面 R R e e w w r r i i t t e e 到到 静静 态态化化 文文 件件 资资 源源 地地 址址2 2 0 0 4 4 . . 不不 存存 在在 , 应应 用用 层层 解解 析析 动动 态态 资资 源源 , 将将 结结 果果 返返 回回2 2 0 0 5 5 . . 确确 定定 是是 否否 需需 要要 进进 行行 静静 态态 化化 操操 作作2 2 0 0 6 6 . . 需需 要要 , 将将 返返 回回 内内 容容 保保 存存 成成 静静 态态 资资 源源 页页 面面是否2 2 0 0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论