php页面静态化

php页面静态化

静态概念和分类
  • 所谓静态的意思,就是地址中不带问号。关于静态化,PHP的静态化分为:纯静态和伪静态。其中纯静态又分为:局部纯静态和全部纯静态。这里讲的是全部纯静态。
伪静态
  • 伪静态,目的就是为了SEO,提高网站的收录效率。因为搜索引擎带问号的页面时,可能会因为问号而进入死循环(以前动网就有这样一个漏洞,蜘蛛进去出不来了),所以很多时候带问号的地址是不会进去的,这样便降低了页面的收录效率。
  • 伪静态对于搜索引擎来说,其实就是静态,因为地址中没有带问号,所以没有真静态比伪静态收录得多的说法.
  • 如果流量稍大一些使用伪静态就出现CPU使用超负荷,我的同时在线300多人就挂了,而不使用伪静态的时候同时在线超500人都不挂,我的ISS数是1000"   确实是这样的,由于伪静态是用正则判断而不是真实地址,分辨到底显示哪个页面的责任也由直接指定转由CPU来判断了,所以CPU占有量的上升,确实是伪静态最大的弊病.所以我们只要不大量使用就可以了.
  • 伪静态的实现主要通过Apache或nginx的重写机制来实现。
纯净态
  • 通过php的缓冲技术,数据在模板上渲染后,通过缓冲区时将其生成静态文件,下次再来请求同样的页面时,判断静态页面是否存在,如果存在并且不过期,还有没有改变过,则直接返回静态页面,否则就去php的控制器重新解析,重新生成静态页面。
  • 静态技术的决策机制
    • 有点类似http的缓存决策机制。可以分为强制缓存和协商缓存。这里只聊协商缓存。
    • 协商缓存有几个关键节点的判断,首先是缓存文件是否存在。如果存在还要判断在生成后是否被修改过,如果没有修改过则判断是否过期(即最近的修改时间和现在的时间差是否小于设定的时间段值),最后才决定是否返回静态页面,否则就要重新生成。
    • 所以在这几个判断节点过程中,就要设置依赖,即缓存文件是否重新生成依赖于哪些文件或数据的是否变动。 这些依赖可以分为文件依赖,数据库依赖,缓存依赖等等。

缓存简单案例源码:https://github.com/Frankltf/chache

posted @ 2018-05-09 09:30  技术-刘腾飞  阅读(749)  评论(0编辑  收藏  举报