http缓存技术的原理

  介绍

本篇内容主要讲解“http缓存技术的原理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“http缓存技术的原理”吧!

  HTTP缓存实现的原理

  浏览器是如何知道使用缓存的,其实这都是通过http中,浏览器将最后修改时间发送请求给web服务器,web服务器收到请求后跟服务器上的文档最后修改的时间对比,如果web服务器上最新文档修改时间小于或者等于浏览器发送过来的,则发送304给浏览器,使用缓存版本。

  缓存的概念

  缓存这个东西真的是无处不在,有浏览器端的缓存,有服务器端的缓存,有代理服务器的缓存,有ASP。净页面缓存,对象缓存。数据库也有缓存,等等。

  http中具有缓存功能的是浏览器缓存,以及缓存代理服务器。

  http缓存的是指:当网络请求抵达缓存时,如果本地有“已缓存的“副本,就可以从本地存储设备而不是从原始服务器中提取这个文档。

  缓存的好处

  缓存的好处是显而易见的,好处有,

  1. 减少了冗余的数据传输,节省了网费。

  2. 减少了服务器的负担,大大提高了网站的性能

  3.加快了客户端加载网页的速度

  提琴手可以方便地查看缓存的头

  提琴手中把标题都分门别类的放在一起,这样方便查看。

 http缓存技术的原理

  如何判断缓存新鲜度

  Web服务器通过2种方式来判断浏览器缓存是否是最新的。

  第一种,浏览器把缓存文件的最后修改时间通过标题“if - modified - since”来告诉Web服务器。

  第二种,浏览器把缓存文件的ETag,通过标题“If-None-Match",来告诉Web服务器。

  通过最后修改时间,来判断缓存新鲜度

  1. 浏览器客户端想请求一个文档,,首先检查本地缓存,发现存在这个文档的缓存,,获取缓存中文档的最后修改时间,通过:if - modified - since,发送请求给Web服务器。

  2. Web服务器收到请求,将服务器的文档修改时间(last - Modified):跟请求报头中的,if - Modified - since相比较,如果时间是一样的,说明缓存还是最新的,Web服务器将发送304 Not Modified给浏览器客户端,告诉客户端直接使用缓存里的版本。如下图。

 http缓存技术的原理

  3.假如该文档已经被更新了对了web这类服务器将发送该文档的最新版本给浏览器客户端,如下图。

 http缓存技术的原理

  实例:打开提琴手,然后打开博客园首页。然后F5刷新几次浏览器。你会看到博客园首页也用了缓存。

 http缓存技术的原理

  与缓存有关的头

  我们来看看每个标题的具体含义。

  请求

  cache - control:信息=0   以秒为单位   if - modified - since:星期一,2012年11月19日08:38:01格林尼治时间   缓存文件的最后修改时间。   具有:“0693 f67a67cc1:0"   缓存文件的Etag值   cache - control: no - cache   不使用缓存   编译指示:no - cache   不使用缓存   ,   ,

  响应

  cache - control:公共   响应被缓存,并且在多用户间共享,,(公有缓存和私有缓存的区别,请看另一节)   cache - control:私人   响应只能作为私有缓存,不能在用户之间共享   cache - control: no - cache   提醒浏览器要从服务器提取文档进行验证   cache - control:不是商店   绝对禁止缓存(用于机密,敏感文件)   cache - control:信息=60   60秒之后缓存过期(相对时间)   日期:2012年11月19日,星期一,08:39:00格林尼治时间   当反应前发送的时间   到期:星期一,2012年11月19日08:40:01格林尼治时间   缓存过期的时间(绝对时间)   最后修改:星期一,2012年11月19日08:38:01格林尼治时间   服务器端文件的最后修改时间   ETag:“20 b1add7ec1cd1:0"   服务器端文件的Etag值

  如果同时存在cache - control和到期怎么办呢?

http缓存技术的原理