网站优化---页面静态化技术

时间:2024-03-20 19:14:21

一:

首先先区分一下动态页面和静态页面的区别

动态文件:PHP脚本、Java脚本等

动态文件的执行过程:词法、语法分析 -> 编译 -> 渲染输出

静态文件:HTML文件

从加载速度上可以看出,静态文件明显比动态文件速度快

二:静态文件的分类

真静态:真正的静态文件(访问时候的地址是动态地址,但实际上是静态文件),目的是为了减轻数据库服务器的压力,提高访问速度

伪静态:不是真正的静态文件,(但是访问的时候的网址是静态网址,但实际访问的是动态文件),目的是为了SEO推广,方便百度搜索引擎进行搜索,

三:实现方法

真静态:OB缓冲技术;模板替换术

伪静态:使用PHP脚本进行实现;通过web进行配置实现

四:实现方法及原理

OB缓存

 1实现原理

  PHP执行过程中,存在一个缓冲区output_buffering

  oboutput_buffering(输出缓存),用于缓存响应主体的数据内容。

网站优化---页面静态化技术

第一种方式:在php.ini文件中,

网站优化---页面静态化技术

第二种方式:在页面中使用ob_start()函数,来开启。

两种方式的区别是,ob_start()只在当前页面有效,推荐第二种方式来完成。

常用函数

ob_start( );开启

ob_get_contents();获取ob缓存里面的数据内容。

ob_clean();//清空ob缓存里面的数据,不关闭ob缓存。

ob_end_clean();//清空ob缓存里面的数据,并关闭ob缓存。

ob_flush();//ob缓存里面的数据给刷新(移动,推送)到程序缓存,不关闭ob缓存。

ob_end_flush();//ob缓存里面的数据给刷新(移动,推送)到程序缓存,并关闭ob缓存。

3、实现页面静态化的三种方式

  ①访问时生成静态文件(不推荐)

     控制好静态文件的更新时间

  ②在后台手动生成静态文件

     后台手动更新

  ③使用定时任务定期生成静态文件(推荐使用)

最佳做法:②③的结合体,先后台手动生成一次静态文件,然后定时更新,如果在更新的时间内,定时脚本没有运行,就手动清除缓存(删除缓存文件)


模板替换技术

1、实现方式:

1)在添加新闻内容的时候,生成对应的新闻详情的静态页面。

2)在修改新闻内容的时候,要重新生成新闻详情的静态页面。

3)在访问新闻详情页面的时候,直接访问生成的静态页面

真静态的应用场景

1)网站页面访问比较频繁的,但是更新不是很频繁,比如一些新闻类型的网站详情页及网站的首页

2)不适合于要求实时更新的一些网站,比如股票及银行类型的网站

3)一般来说后台不用做真静态


伪静态

先来看一个网址:

http://jingyan.baidu.com/article/90bc8fc804f4faf652640c6c.html  

从形式上看是一个静态地址,实际上还是访问的动态地址,

比如:访问:http://www.abc.com/news-sport-id123.html

实际上是:http://www.abc.com/news.php?type=sprot&id=123;

作用:主要是利于seo推广,静态页面的方式,比较容易被搜索引擎给搜集


第一种:apache的重写机制

实现原理:

使用apache/nginxrewrite机制(就是一个url的重写机制

在apache/conf/httpd.conf开启(开启重写模块

网站优化---页面静态化技术

配置方式:直接在配置虚拟主机处进行配置 ,每次修改apache的文件都需要重启apache

在配置虚拟机时给对应的域名开启重写机制

权限控制   先拒绝后允许

网站优化---页面静态化技术

在需要重写机制的文件夹的下面新建文件    .htaccess   并在.htaccess中写入重写规则

比如:

网站优化---页面静态化技术

重启apache

CI框架中的重写规则

第一步:在虚拟主机开启  AllowOverride All

第二步: //配置伪静态时 在CI框架的配置文件config中 修改URL协议为

$config['uri_protocol']= 'PATH_INFO';


nginx的重写机制

2.在需要重写机制的文件夹写新建   .htaccess  文件  并在文件中写入相应的规则

比如:

网站优化---页面静态化技术

3.在ngniz的配置文件ngnix.conf  或者 引入的.conf文件中引入重写规则的文件<文件放在server内location外>

网站优化---页面静态化技术


4.重启nginx  .php-fpm

伪静态的使用遵循原则

主要是为了搜索引擎的收集

只要url不要过长,过多的参数,同时不要让蜘蛛陷入链接黑洞,现在的搜索引擎技术对待动态链接和静态链接基本没有区别。因此,如果不方便动态链接静态化的站长朋友,也没必要将太多精力花在这方面。另外,伪静态是通过服务器配置将动态映射成静态页面,多了一个映射步骤,伪静态处理更加占用服务器cpu资源。

如何选择真静态和伪静态?

网站实时性要求高,不要使用静态化(真静态,伪静态均不适宜)。

如果网站访问量较小,没有必要使用静态化技术(网站后台)

如果数据项目文件不多,但是访问频率极大,建议使用真静态,比如新浪新闻频道。

如果数据项目海量(论坛),使用真静态会生成海量的html静态页面,建议使用伪静态。

在一个大型网站中,静态化技术是综合使用的,这个需要大家经验的积累,多做项目。(

网站:新闻频道,真静态,基金频道:伪静态,管理后台:不使用静态技术)

后台:  管理控制前台生成真静态或者更新静态页面