网页静态化技术
静态页面:纯html页面
动态页面:内容存在数据库中,根据要求显示,url中以? &显示不同的参数
伪静态:仅仅是对静态页面的重写,不能让动态页面静态化。搜索引擎不会认为伪静态就是HTML文档。其次,伪静态可取,但应把重心放在去除冗余参数、规范URL、尽可能的避免
重复页上。 举例说明: 这是一个动态网址 news.php?lang=cn&class=1&id=2,从seo的角度来看, 最好重写为 news-cn-class1-id2.html。这样的也更加有效的防止sql注入攻击 。
但是也不要精简重写为 news-2.html,这样简写同样不利于搜索引擎优化.
静态化的必要性:
1.访问html比php jsp速度更快
2.更有利于SEO
3.不易被sql攻击
网站的优化,要注意的以下几点:
页面真静态思路:
信息对实时性要去不高,并且比较稳定,当第一个用户访问某条新闻后,使用缓存机制(缓存的内容是http的contents中的内容),
把内容缓存到html中,下次访问时直接访问html即可。
问题:
如果我们的新闻更新了,这样我们的静态页面不变->解决
解决方法1:我们可以判断静态页面是否过期(30s),如果过期,则重新创建
方法局限:①页面点击查看的时候,仍然是个php页面->网址
②实时性不好,30s延时
解决思想:当我们添加新闻或者更新新闻的时候,就同步的更新html静态页面。
设计模板文件(网页设计师/美工),通过模板创建静态页面。
页面静态化(真静态)的优点和缺点
html静态页(真静态)的好处:
一是减少服务器对数据响应的负荷,
二是加载不用调动数据库,响应速度快。
三是便于优化引擎。
缺点:一是空间占用比较大。二是生成的文件多了,服务器对html文件的响应负担也较重,海量的静态文件查找起来也较慢。
如果一个系统使用真静态进行页面静态化,需要生成海量的静态 页面,我们可以考虑使用伪静态来处理.
伪静态:
比如这个网页 http://localhost/content.php/1,122,8912.html其实处理的脚本是content.php 参数为1,122,8912
相当于content.php?a=1&b=122&c=8912 只不过这样的URL太难记。搜索引擎也不喜欢。、
真静态只是完全生成了HTML。 客户端访问的时候直接输出。不用脚本解释。在流量非常大的时候(比如每天有上百万的访问量的时候)会起到很好的效果。
也就是说服务器端实实在在的存在这个HTML页面。 当然在你网站的流量没有那么大的时候。URL重写是最好的方法(如果访问量很大,还可以考虑负载均衡)
URL重写的方法有很多种,APACHE(rewrite),IISREWRITE。PHP脚本直接处理。我们先讲解如何使用PHP脚本直接处理。
1.php程序的正则表达式来实现:
程序为例:
http://localhost/content.php/1,122,8912.html
<?php //利用server变量 取得PATH_INFO信息 该例中为 /1,122,8912.html 也就是执行脚本名后面的部分
if(@$path_info =$_SERVER["PATH_INFO"]){
//正则匹配一下参数
if(preg_match("/\/(\d+),(\d+),(\d+)\.html/si",$path_info,$arr_path)){
$gid =intval($arr_path[1]); //取得值 1
$sid =intval($arr_path[2]);//取得值122
$softid =intval($arr_path[3]); //取得值8912
}else die("Path:Error!"); }else die('Path:Nothing!'); ?>
2.
下面讲一下另外一种形式的PHP伪静态的程序实现方法程序为例: http://www.hsp.com/news-id23.html 通过apache的 rewrite机制来实现.
真静态 VS 伪静态
①真静态访问效率高,利于seo.可以减少对数据库的操作。但是会占用大量 的磁盘.
②伪静态一、可以方便的实现对搜索引擎的优化,
二、占空间比较小。
三、通过生成不同view-id2.hmtl 可以实现内容的变化.
四有效的防止了注入攻击
小结: 如果一个网页会被频繁的访问(比如百万级别),通过该网页每次都会去操作数据库,可以考虑使用真静态(建议有针对性的使用),
如果一个网页为了实现对搜索引擎的优化,提供网站的安全性,使用伪静态.
真静态和伪静态的选择
什么情况下不适合使用静态化技术. 网站实时性要求高,不要使用静态化(真静态,伪静态均不适宜). 如果网站访问量较小,没有必要使用静态化技术
如果数据项目不多,但是访问频率极大,建议使用真静态,比如新浪新闻频道
如果数据项目海量,使用真静态会生成海量的html静态页面,建议 使用伪静态
在一个大型网站中,静态化技术是综合使用的,这个需要大家经验 的积累,多做项目
注: 个人推荐使用伪静态配合缓存技术(防止缓存文件量过大做一些定时清理过时文件操作)来为提供大型网站提速.
java web简单实现真静态案例:「Java Web」主页静态化的实现
java web简单实现伪静态案例:【Java Web】使用URLRewrite实现网站伪静态