注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

0与1构筑世界,程序员创造时代

软件架构设计 Java编程

 
 
 

日志

 
 

HTTP缓存 - If-Modified-Since与Last-Modified  

2015-04-14 17:34:38|  分类: HTTP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

概述

当浏览器本地缓存的数据已经过期或无法判断是否为最新版本,就会向服务器发起请求进行核对,常见的是Last-ModifiedIf-Modified-Since结合使用。

  • 如果自指定的时间之后,文档发生了变化,就返回文档内容和新的修改时间,浏览器用新的数据覆盖本地缓存。
  • 如果文档没有变化,返回304 Not Modified,只返回一些需要在浏览器中更新的Header信息。

注:一些WEB服务器在实现时,只是比较If-Modified-Since与文档的修改时间是否一致,并没有确认是否在这个时间之后修改过。

实例

首次请求与响应

1)浏览器首次访问时,请求的Header中没有If-Modified-Since。
2)响应状态码为200,响应的Header中返回了Last-Modified并完整地返回了文件内容。

HTTP缓存 - If-Modified-Since与Last-Modified - 傲风 - 0与1构筑世界,程序员创造时代
 

本地有缓存,文档在服务器未修改

1)浏览器再次访问,请求的Header携带了If-Modified-Since,其值为上次响应的Last-Modified的时间。
2)此文件没有修改过,服务器返回响应状态码为304,响应的Body为空。

HTTP缓存 - If-Modified-Since与Last-Modified - 傲风 - 0与1构筑世界,程序员创造时代
 

本地有缓存,文档在服务器有修改

1)在服务器修改文件。
2)浏览器的请求的Header携带If-Modified-Since。
3)由于文件已修改并且比If-Modified-Since的时间新,因此响应状态码为200,返回文件内容并在响应的Header中返回了Last-Modified,其值为文件的最新修改时间。

HTTP缓存 - If-Modified-Since与Last-Modified - 傲风 - 0与1构筑世界,程序员创造时代
 

<正文结束>


文章声明


作者:傲风(aofengblog@163.com)       编写时间:2015年04月14日

网址:http://aofengblog.blog.163.com

作者保留所有权利,转载请保留文章全部内容或者说明原作者和转载地址!

  评论这张
 
阅读(3259)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017