页面静态化学习总结

来源:互联网 发布:13周胎儿nt数据看男女 编辑:程序博客网 时间:2024/06/02 16:14

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角度看的,它对应的页面不是真正存在的,而是每次查询数据库得到的信息;
真静态的页面是真正存在的;

小结:如果一个网页会频繁的访问,通过该网页每次都会去操作数据库,可以考虑使用真静态,
如果一个网页为了实现对搜索引擎的优化,提供网站的安全性,使用伪静态;

 

 

原创粉丝点击