zoukankan      html  css  js  c++  java
  • 《构建高性能web站点》阅读笔记(三)

    动态脚本加速

    解释器将动态脚本解释成操作码(opcode)的这一过程也存在一定的开销;动态脚本加速就是将缓存的思路搬到操作码层,实现对操作码的缓存;

    PHP可以选择:APC 、eAccelerator、XCache等将opcode缓存在共享内存中。Python能选择什么?

    动态脚本加速技术主要用于解决CPU、内存的系统瓶颈,对I/O引起的系统瓶颈帮助非常有限。

     

    浏览器缓存

    尽可能地让Web站点的内容缓存在用户浏览器中,这样将在一定程度上减少了服务器的计算开销,也避免了有些由于不必要重复传输而带来的带宽浪费。

    IE:在用户本地设置临时文件目录,用于存放缓存。

    FireFox:采用二进制文件的方式来存储和管理缓存文件,在Firefox浏览器的地址栏中输入about:cache即可查看缓存内容;除在磁盘中存储缓存,对一些命中率较高的内容同时放入内存缓存中,从而实现多级缓存;

    缓存协商

    浏览器和服务器通过缓存协商机制实来完成浏览器端缓存的创建、存储和过期检查等一系列过程;

    缓存协商的大致过程:

    Last-Modified

    动态生成的内容一般不存在传统意义上静态页面的“最后修改时间”,所以需要动态程序为HTTP响应增加最后修改时间的标记;否则浏览器不会进行缓存。

    ETag

    ETag不是通过文件最后修改时间来判断是否需要更新,而是通过一串编码(ETag)来标记内容,ETag没有变,内容就不需要更新;

    ETag由WEB服务器来生成,如Apache为一个静态文件的http响应头增加标记

    ETag:74177-b-46585209c1bc0

    浏览器在下一次请求的时候,在http请求头中增加标记:

    If-None-Match:74177-b-46585209c1bc0

    web服务器用重新计算后的ETag和浏览器请求头中的进行对比,如果相同则返回304状态码,表示没有更新,可以使用本地缓存;

    如何请求页面

    天天用浏览器,但是对浏览器的一些操作细节的差异还真不清楚,看看吧:

    Ctrl + F5 :强制刷新,使浏览器对网页及其中的组件都直接从服务器获取,不使用缓存协商。

    F5:一般刷新,等同于点浏览器的“刷新”按钮,能够使浏览器使用必要的缓存协商,但不允许使用本地缓存,即可以使Last-Modified发挥作用,而使Expires无效;

    单击地址栏的“转到”,等同于输入URL后按回车,浏览器会对所有未过期内容使用本地缓存。

  • 相关阅读:
    centos安装nginx
    Vue练习十一:02_05_函数传参改变Div任意属性的值
    Vue练习十:02_04_弹出层
    Vue练习九:02_03_求数组中所有数字的和
    Vue练习八:02_02_点击div显示内容
    Vue练习七:02_01_百度输入法
    Vue练习六:01_06_记住密码提示框
    Vue练习五:01_05_鼠标移入改变样式鼠标移出恢复
    Vue练习四:01_04_点击将DIV变成红色
    Vue练习三:01_03_函数传参
  • 原文地址:https://www.cnblogs.com/xiekeli/p/2470516.html
Copyright © 2011-2022 走看看