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后按回车,浏览器会对所有未过期内容使用本地缓存。

  • 相关阅读:
    死锁
    Notepad++源代码阅读——窗口封装与继承
    Notepad++源代码阅读——窗口元素组织与布局
    选择问题(selection problem)
    插入排序 | 冒泡排序 | 希尔排序 | 堆排序 | 快速排序 | 选择排序 | 归并排序
    编程之美2014---大神与三位小伙伴
    ulimit 修改 open files & core
    tmux手记
    匿名访问windows server 2008 R2 文件服务器的共享
    WINDOWS系统变量
  • 原文地址:https://www.cnblogs.com/xiekeli/p/2470516.html
Copyright © 2011-2022 走看看