一、与缓存有关的Header

1、Request

If—Modified—Since:           缓存文件的最后修改时间

If—None—Match:                               缓存文件的ETag值

Cache—Control:no—cache                   不使用缓存

Pragma:no—cache                              不使用缓存

2、Reaponse

Cache—Control:public         响应被缓存,并且各用户共享

          private       私有缓存

          no—cache   提醒浏览器要从服务器提取文档验证

          no—store    绝对禁止缓存(用于机密文件)

          max—age   60s后缓存过期(相对时间)

Date:当前Response发送的时间

Expires:缓存过期的时间(绝对时间)

Last—Modified:服务器端文件的最后修改时间

ETag:服务器端文件的ETag值

3、为何使用ETag

  ETag由服务器端产生,然后发送给客户端。主要是为了解决Last—Modified无法解决的问题:

  a)某些服务器不能精确得到文件的最后修改时间; 

  b)某些文件的修改非常频繁,在秒以下的时间内修改,Last—Modified只能精确到秒;

  c)一些文件的最后修改时间改变了,但是内容并未改变,我们不希望客户端认为这些文件修改了;

二、几种刷新方式

  对一个资源,浏览器第一次访问,获取资源内容和cache-control: max-age:600,Last_Modify: Wed, 10 Aug 2016 26 GMT,于是浏览器把资源文件放在缓存中。

1、输入浏览器url地址栏,回车

浏览器直接使用本地有效的缓存,不发送任何请求,直接从缓存中读取。(这种情况名为  缓存命中)

2、F5

浏览器会去Web服务器验证缓存(发送一个请求,带上Last_Modify: Wed, 10 Aug 2016 26 GMT),服务器若在这个时间后未修改文件,直接返回304,浏览器就会去缓存中获取资源。

3、Ctrl+F5(强制刷新)

浏览器先把缓存中的文件删除,然后去服务器端请求完整最新的资源。

三、代理服务器

1)对客户端来说,代理服务器扮演着服务器的角色,接收Request,返回Response

2)对服务器来说,代理服务器扮演着客户端的角色,发送Request,返回Request

PS:常用的抓包工具Fiddler、HTTP Watch、Charles(青花瓷)、Wireshark(鲨鱼)等都可以看成一个代理服务器。LR的原理也是代理

四、代理的作用

1)FQ(这一点我就不说明了)

2)匿名访问[通过删除报文中的身份特性(客户端的IP地址、Cookie等),从而对远端服务器隐藏原始用户的IP地址及其他细节]

3)通过代理连接因特网

4)通过代理缓存,加快上网速度

5)儿童过滤器(eg:校园网禁止未成年访问成人网站)

代理认证:当浏览器访问需要认证的代理时,代理服务器会返回407,告诉浏览器输入用户名密码。

HTTP缓存&代理的更多相关文章

  1. 对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache

    虽然jquery的较新的api已经很好用了, 但是在实际工作还是有做二次封装的必要,好处有:1,二次封装后的API更加简洁,更符合个人的使用习惯:2,可以对ajax操作做一些统一处理,比如追加随机数或 ...

  2. Memcached集群/分布式/高可用 及 Magent缓存代理搭建过程 详解

    当网站访问量达到一定时,如何做Memcached集群,又如何高可用,是接下来要讨论的问题. 有这么一段文字来描述“Memcached集群” Memcached如何处理容错的? 不处理!:) 在memc ...

  3. CentOS6.3编译安装Memcached集群分布式缓存代理Magent-0.6出错汇总

    参考文章:Memcached集群/分布式/高可用 及 Magent缓存代理搭建过程 详解,搭建Magent,在编译的过程中会出现很多错误: #编译安装安装magent到 /usr/local/mage ...

  4. taobao-pamirs-proxycache开源缓存代理框架实现原理剖析

    写在前面 taobao-pamirs-proxycache 是一款开源缓存代理框架, 它将 缓存代码 与 业务代码 解耦.让开发专注coding业务, 缓存通过xml配置即可实现.本文先从此工具如何使 ...

  5. JS设计模式---缓存代理

    缓存代理可以为一些开销大的运算结果提供暂时的存储,在下次运算的时候,传进来的参数跟上次是一致, 则可以直接返回前面存储的结果. 运行上面的代码我们发现,当第二次再调用proxyMult(1,2,3)的 ...

  6. squid3.5缓存代理实践记录

    准备: 两台服务器,一台web,一台squid缓存代理 squid机域名:www.dannylinux.top web机IP:12.1.1.1 1.版本: [root@danny squid]# sq ...

  7. Nginx多进程高并发、低时延、高可靠机制在缓存代理中的应用

    1. 开发背景 现有开源缓存代理中间件有twemproxy.codis等,其中twemproxy为单进程单线程模型,只支持memcache单机版和redis单机版,都不支持集群版功能. 由于twemp ...

  8. Nginx多进程高并发、低时延、高可靠机制缓存代理中的应用

    1. 开发背景 现有开源缓存代理中间件有twemproxy.codis等,其中twemproxy为单进程单线程模型,只支持memcache单机版和redis单机版,都不支持集群版功能. 由于twemp ...

  9. Memcached集群:Magent缓存代理使用

    小结: 先启动memcached 然后启动magent memcached -d -p 11211 -u memcached -m 64 -c 5120 memcached -d -p 11212 - ...

  10. varnish4.0缓存代理配置

    防伪码:你必须非常努力,才能看起来毫不费力. 一.varnish原理: 1)Varnish简介: varnish缓存是web应用加速器,同时也作为http反向缓存代理.你可以安装varnish在任何h ...

随机推荐

  1. SQL查询第m条到第n条的方法

    SQL查询第m条到第n条的方法 如表名为GOOD Sselect top (n-m) * from GOODS where (某一列名) not in (select top m (某一列名) fro ...

  2. Android平台下OpenCV移植与使用---基于C/C++

    在<Android Studio增加NDK代码编译支持--Mac环境>和<Mac平台下Opencv开发环境搭建>两篇文章中,介绍了如何使用NDK环境和Opencv环境搭建与测试 ...

  3. thinkphp中volist标签

    volist标签 volist标签主要用于在模板中循环输出数据集或者多维数组 volist(name,id,offset,length,key,mod,empty) name(必须):要输出的数据模型 ...

  4. Jetty使用教程(一)——开始使用Jetty

    一.Jetty简介 1.1 什么是Jetty Jetty是一个提供HHTP服务器.HTTP客户端和javax.servlet容器的开源项目.   这个入门教程分为五个部分: 第一部分部分重点介绍如何使 ...

  5. C++ 定义全局数组

    数组怎么用,全局数组就怎么用,只是他的作用域不一样才叫全局数组... 在A.h 或 A.cpp中定义char buf[10]; 如果在B.cpp要用,就在其开头中写成 extern char buf[ ...

  6. Mac系统 安装SVN

  7. Eclipse调试 : step into,step over,step return 说明

    step into : 单步执行,遇到子函数就进入并且继续单步执行(F5) step over:   在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完在停止,也就是把 ...

  8. 3Sum——leetcode

    Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all un ...

  9. Codeforces632E Thief in a Shop(NTT + 快速幂)

    题目 Source http://codeforces.com/contest/632/problem/E Description A thief made his way to a shop. As ...

  10. 【BZOJ2318】Spoj4060 game with probability Problem 概率

    [BZOJ2318]Spoj4060 game with probability Problem Description Alice和Bob在玩一个游戏.有n个石子在这里,Alice和Bob轮流投掷硬 ...