码迷,mamicode.com
首页 > Web开发 > 详细

HTTP缓存&代理

时间:2016-12-18 17:56:41      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:str   ip地址   验证   ast   角色   校园   tor   地址   缓存命中   

一、与缓存有关的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缓存&代理

标签:str   ip地址   验证   ast   角色   校园   tor   地址   缓存命中   

原文地址:http://www.cnblogs.com/zichuan/p/6194735.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!