页面静态化学习总结
来源:互联网 发布: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角度看的,它对应的页面不是真正存在的,而是每次查询数据库得到的信息;
真静态的页面是真正存在的;
小结:如果一个网页会频繁的访问,通过该网页每次都会去操作数据库,可以考虑使用真静态,
如果一个网页为了实现对搜索引擎的优化,提供网站的安全性,使用伪静态;
- 页面静态化学习总结
- 页面的静态化学习笔记
- PHP页面静态化学习笔记
- PHP页面静态化学习笔记之一:网址分类
- PHP页面静态化学习笔记之二:页面静态化
- 正则化学习总结
- PHP页面静态化学习笔记之三:使用PHP缓存机制完成静态化
- PHP页面静态化学习笔记之四:简易新闻系统v1.0
- PHP页面静态化学习笔记之五:简易新闻系统v1.1
- 虚拟化学习小总结
- Android 序列化学习总结
- 可持久化学习总结
- 热修复And插件化学习总结
- atitit 碎片化学习.docx attilax 总结
- 页面静态化--总结
- 《化学教学论》总结
- 绿色化学总结
- 关于序列化和反序列化学习总结
- js中prototype的继承和扩展
- mvc
- LeetCode Add Binary
- Javascript 读写文件示例:
- 浅显易懂二分图-最大匹配,最小路径覆盖,最小点覆盖
- 页面静态化学习总结
- 触发器和游标
- Android开发之handler(二)
- 黑马程序员之C#学习笔记:用户输入一个年份将其全部转化成大写
- PNG透明背景按钮的实现(MFC)
- STL迭代器失效问题记录
- 什么是游标。游标使用示例。
- POJ 1961(KMP前缀最长重复子串)
- struts2学习笔记--获取Session和request方法