HTTP缓存&代理

一、与缓存有关的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)翻墙(这一点我就不说明了)

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

3)通过代理连接因特网

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

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

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

转载于:https://www.cnblogs.com/zichuan/p/6194735.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值