您的位置:首页 > 其它

页面静态化学习总结

2012-11-14 20:56 204 查看
apache/ab.exe 这个程序做网站访问压力测试。

ab.exe -n1000 -c10 http://localhsot/test.php

1.访问相同页面,访问.php页面比.html页面要慢;

2.静态化利于seo;

3.防止sql注入;

4.百度建议:url不要太长;使用静态网址;meta里面的keyword要写;尽量不要使用框架;img里面的alt要写;

一、真静态

php.ini文件中;

//开启缓存

ob_start();//output buffering

echo "aaaaaaaaa";

header("content-type:text/html;charset=utf8");

echo "hello";

//ob_get_contents接收output buffering

//ob_clean();//清除output buffering

ob_end_clean();//关闭ob缓存,同时清空。

//ob_end_flush();//把ob缓存的内在输出并清空,并关闭ob

//ob_flush();//输出ob缓存并清空,不关闭ob;

echo "kkkkkkkk";//->程序缓存,必须在header后面;

页面静态化思路:

因为新闻这各信息不是对实时性要求高,并且比较稳定,所以我们可以这样做,

当第一个用户访问某条新闻后,我们使用ob的缓存机制,把内容缓存到html页面。

当下一次访问时,直接访问html即可。

存在问题:

1.程序页面里面的点击查看链接的时候,仍然是一个php页面->html网址;

2.实时性不好,有30s的延迟;

html静态面(真静态)的好处有三点:一是减少服务器对数据响应的负荷;二是加载不用调动数据库,响应速度快;

三是便于优化引擎;

缺点也有几点:一是空间占用比较好大,二是生成的谁的多了,服务器对html文件夹的响应负担也较重;

如果一个系统使用真静态进行页面静态化,需要生成海量的静态页面,我们可以考虑使用伪静态来处理;

二、伪静态

http://localhost/demo.php/126.12.365.html设计成这样的静态网址;

目前有两种方式来处理这种接收方式:

1.在php文件夹中,直接使用正则表达式技术处理;

$_SERVER['PATH_INFO'];取出URL最后的地址;

2.配置apache的rewrite来处理;

1.配置apache启用rewrite机制;

在httpd.conf中启用rewrite

LoadModule rewrite_module modules/mod_rewrite.so

2.配置虚拟主机

到c盘hosts文件添加你的ip和域名对应

127.0.0.1 www.jmb.com

在http.conf文件中启用虚拟主机;

# Virtual hosts 启用虚拟主机

Include "conf/extra/httpd-vhosts.conf"

打开E:\xampp\apache\conf\extra\httpd-vhosts.conf,配置其内容;

<VirtualHost *:80>

##ServerAdmin postmaster@dummy-host2.localhost

#文档根目录

DocumentRoot "e:/xampp/htdocs/static"

#域名

ServerName www.jmb.com

##ServerAlias www.dummy-host2.localhost

ErrorLog "logs/dummy-host2.localhost-error.log"

##CustomLog "logs/dummy-host2.localhost-access.log" combined

#配置rewrite相关选项

<Directory "e:/xampp/htdocs/static"> //<Director>可以有多个,这个使用于不同目录下,配置不同访问权限;

#拒绝所有的访问

#Deny from all

Allow from all

#是否显示到表(在发布项目后一般是不启用,针对这个目录DocumentRoot在htdoc外面的目录生效)

Options +indexes

#是否启用rewrite

#有时候我们可以把rewrite机制和规则写在这里;

Allowoverride all

</Directory>

</VirtualHost>

3.在<Drectory>段的配置,默认值,是在httpd.conf中配置,看根目录;

4.在目录下添加了一个.htaccess文件,这个文件夹是配置rewrite机制和规则;

不同目录下可以有不同的.htaccess文件;

<ifModule rewrite_module> //这个意思就是说如果没有rewrite机制的话,就可以不报错;

#写你的rewrite规则

RewriteEngine On

#news-id(\d+)\.html$ 是规则 news.php?id=$1是转发的页面

#可以配置多个规则,顺序是从上到下;

RewriteRule news-id(\d+)\1\.html$ news.php?id=$1

RewriteRule abc-id(\d+)\1\.html$ error.php?id=$1

</ifModule>

5.这个rewrite的规则也直接在<Direcotry>段直接配置;

如果一个网站使用真静态技术,会生成海量的html静态页面,可以考虑使用伪静态技术来优化我们的网站;

url重写(伪静态)的好处:一、可以方便的实现对搜索引擎的优化,并且比生成静态更加方便。

二、占空间比较小。三、首页每天自动变化,不用维护。四、便于广告的轮显;

缺点:就是效率不如生成html的,因为它不是真正意义上的静态页,每次请求要读取数据库的,

但你可以用缓存技术来补偿一下。

伪静态是站在SEO角度看的,它对应的页面不是真正存在的,而是每次查询数据库得到的信息;

真静态的页面是真正存在的;

小结:如果一个网页会频繁的访问,通过该网页每次都会去操作数据库,可以考虑使用真静态,

如果一个网页为了实现对搜索引擎的优化,提供网站的安全性,使用伪静态;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: