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

http 缓存示例

时间:2015-08-12 16:49:00      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:http

服务器收到请求时,会在 200OK中回送该资源的 Last-Modified ETag,客户端将该资源保存在 cache中,并记录这两个属性。当客户端需要发送相同的请求时,会在请求中携带 If-Modified-Since If-None-Match两个头。两个头的值分别是响应中 Last-Modified ETag头的值。服务器通过这两个头判断本地资源未发生变化,客户端不需要重新下载,返回 304响应。常见流程如下图所示:

技术分享

技术分享

技术分享

上面的图片的是访问百度的时候,黑色的请求是取得资源,灰色的请求是发送的有效性确认,然后接下来从缓存服务器获取资源。

下面是对使用缓存资源进行http请求的时候的头部,可以看出有来自缓存服务器的响应和对资源服务器进行有效性确认的响应头部。

技术分享

第一个请求的请求头部:

技术分享

因为http响应将Date和Expires字段设置为相同的值,所以缓存服务器不会缓存该资源,所以每次都会去请求源资源服务器。max-age设置为0也可以使每次都要想源服务器进行有效性确认,而不是某个时间段之内不用确认。

技术分享

向源服务器进行验证,首部中存在If-Modified-Since字段,告诉服务器端只接受在该时间之后修改过的资源,如果在该时间之后没有修改,返回304。

版权声明:本文为博主原创文章,未经博主允许不得转载。

http 缓存示例

标签:http

原文地址:http://blog.csdn.net/td901105td/article/details/47446435

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