网站页面静态化方案
来源:互联网 发布:杭州行知幼儿园 编辑:程序博客网 时间:2024/05/16 11:17
前端时间,由于网站mysql数据库性能瓶颈原因,开始研究网站页面静态化。目前已上线并且运行良好,具体的过程和想法贴出来,和大家一起分享一下。
网站: http://v.xxt.cn
静态化的好处:
1.响应速度快,避免中间转换步骤
2.避免与数据库的交互,减轻服务器的压力
3. 对SEO友好,更容易被爬虫抓取。(貌似此处现在没有这个优势了。看百度seo说明上面,动态页面也不存在啥问题。)
适用的地方:
更新不频繁、跟用户个人信息相关性低。
新闻、博客、商品信息等。。。
实现原理:
1. 伪静态化
看上去是静态化,其实还是动态的网页内容。对性能没有任何的提升。主流技术:urlrewrite
2. 全静态化
我们用浏览器访问页面的时候,其实展现给我们的就是html页面,经过服务器处理过的。本次的原理就是利用http请求,获取到服务器生成的html页面的源代码,存起来让用户访问。
在java程序中利用java.net.Url来获取web内容,然后重写html文件。
java.net.Url;java.net.HttpURLConnection;httpURLConnection是基于HTTP协议的,其底层通过socket通信实现。如果不设置超时(timeout),在网络异常的情况下,可能会导致程序僵死而不继续往下执行.java.io.File;
说明:
原理很简单,但是在实施的时候,有很多需要注意的地方。
比如
1. 动态的内容,比如首页如何处理用户的登陆?
2.个性化内容,不同的用户如何展现不同的信息?
3. 生成html页面的时候,生成到一半程序挂掉了,如何保证页面正常?
4. 页面有更新怎么办?更新机制有轮询生成和事件触发生成。
5. 以前的老地址怎么办?使用urlrewrite来重定向到新html页面
6. html文件存储怎么办?建立合理的文件存储目录规划
7. 生成的html页面需要进行处理,去除掉空行和空格,可以大大减小html的大小。可达几十K。
8. 在做一些地址转发时,可能会用到id取模计算等,这些urlrewrite是做不到的,可以利用nginx的计算模块lua来实现。
动态处理的内容是无法静态化的。所以需要增加 js+cookie 来控制动态的内容。
参考资料
1.http://tristan-wang.iteye.com/blog/554456
2.http://baike.baidu.com/view/2510440.htm
3.Urlrewrite
http://tuckey.org/urlrewrite/
http://www.jtict.com/blog/seam-form-url-rewriting/
http://www.megadix.it/content/urlrewritefilter-un-modrewrite-le-servlet
http://tuckey.org/urlrewrite/manual/3.0/guide.html
http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/4.0/index.html#filterparams
http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/4.0/index.html#condition
- 网站页面静态化方案
- 网站页面静态化方案
- 网站页面静态化方案
- 网站页面静态化方案
- 网站页面静态化方案
- 网站页面静态化方案
- 网站页面静态化方案
- 网站页面静态化方案
- java网站页面静态化方案
- 网站静态化方案
- 网站静态化方案
- jsp网站的静态页面生成方案
- 大型网站页面静态化解决方案
- 网站页面静态化
- .net 网站静态化 方案
- web页面静态化方案
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 我是如何成长为系统架构师的
- thinkphp基于角色的权限控制详解
- Android hardware方法
- 杂记之关键字extern
- C++中传自建类的安全性
- 网站页面静态化方案
- 关于oracle的表空间,分区表,以及索引的总结
- 程序员怎么做职业规划?
- C#学习
- #pragma pack 介绍
- 关系数据库数据模型设计及设计工具PowerDesigner中实现CDM(概念模型)设计并转化为PDM(物理模型)
- OpenVPN的性能极限
- CEGUI配置 快速上手(VS2008)
- Bruteforce