`
85977328
  • 浏览: 1904539 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

猫头哥的HTTP协议教程(六)HTTP协议缓存原理

    博客分类:
  • http
 
阅读更多
Last-Modified 是什么
Last-Modified 是 HttpHeader 中的资源的最后修改时间,如果带有 Last-Modified ,下一次发送 Http 请求时,将会发生带 If-modified-since 的 HttpHeader 。如果没有过期,将会收到 304 的响应,从缓存中读取。

Etag 是什么
Etag 是 HttpHeader 中代表资源的标签,在服务器端生成。如果带有 Etag ,下一次发送带 Etag 的请求,如果 Etag 没有变化将收到 304 的响应,从缓存中读取。
Etag 在使用时要注意相同资源多台 Web 服务器的 Etag 的一致性。

Expire 是什么
Expire 是 HttpHeader 中代表资源的过期时间,由服务器段设置。如果带有 Expire ,则在 Expire 过期前不会发生 Http 请求,直接从缓存中读取。用户强制 F5 例外。

Cache-Control 是什么
no-cache 不缓存过期资源,缓存会向源服务器进行有效期确认后处理资源。
no-store 真正的不进行缓存。
s-maxage 代理服务器的缓存时间设置。
max-age 浏览器客户端缓存。
当max-age和Expire同时存在时,在HTTP/1.1里,优先处理max-age;在HTTP/1.0里,Expire的优先级更高。他和Expire的区别,一个是缓存时间段,一个是缓存时间点。

Last-Modified,Etag,Expire 混合
通常 Last-Modified,Etag,Expire 是一起混合使用的,特别是 Last-Modified 和 Expire 经常一起使用,因为 Expire 可以让浏览器完全不发起 Http 请求,而当浏览器强制 F5 的时候又有 Last-Modified ,这样就很好的达到了浏览器段缓存的效果。
Etag 和 Expire 一起使用时,先判断 Expire ,如果已经过期,再发起 Http 请求,如果 Etag 也过期,则返回 200 响应。如果 Etag 没有过期则返回 304 响应。
Last-Modified,Etag,Expires 三个同时使用时。先判断 Expire ,然后发送 Http 请求,服务器先判断 last-modified ,再判断 Etag ,必须都没有过期,才能返回 304 响应。

注意
如果在浏览器里,直接按F5或者刷新按钮,则会重新发请求,忽略expire和Cache-Control里的属性。
参考的英文
I got it. Google Chrome ignores the Cache-Control or Expires header if you make a request immediately after another request to the same URI in the same tab (by clicking the refresh button or pressing the F5 key). It probably has an algorithm to guess what does the user really want to do.
参考的文章
http://stackoverflow.com/questions/11245767/is-chrome-ignoring-control-cache-max-age
分享到:
评论

相关推荐

    超萌的猫头鹰后台登录界面

    "超萌的猫头鹰后台登录界面"就是这样一个例子,它巧妙地将可爱元素与功能相结合,为用户提供了一种独特的交互体验。 首先,我们来探讨一下这个登录界面的主题——猫头鹰。猫头鹰是一种智慧和警觉的象征,常常用作...

    猫头虎版提示工程师教程-面向开发人员的 ChatGPT 提示工程.pdf

    猫头虎版提示工程师教程-面向开发人员的 ChatGPT 提示工程.pdf

    猫头鹰登录界面

    本文将详细解析"猫头鹰登录界面"这一主题,探讨如何在Android平台上创建一个既超级萌又有良好用户体验的登录界面,同时涉及界面设计与动画效果。 首先,"猫头鹰登录界面"的创意来源于猫头鹰这一动物的形象,其特征...

    js超萌的猫头鹰登录界面,当输入密码的时候,猫头鹰会用翅膀遮住双眼,兼容主流浏览器

    在本文中,我们将深入探讨如何使用JavaScript实现一个超萌的猫头鹰登录界面,当用户输入密码时,猫头鹰的动画效果会显示其用翅膀遮住双眼,同时确保该功能兼容主流浏览器。这个创意的设计既增加了登录界面的趣味性,...

    哆啦猫头猫头哆啦表情包emoji.zip

    《哆啦猫头猫头哆啦表情包emoji.zip》是一个包含多张以哆啦A梦为主题的趣味表情包的压缩文件。这些表情包以其独特的创意和生动的形象,深受互联网用户的喜爱,常用于网络交流中表达情感或增加对话的趣味性。 在IT...

    猫头鹰正则测试工具.rar

    6. **学习资源**:RegexBuddy包含丰富的正则表达式教程和参考资料,对于初学者来说,是一个很好的学习平台。 在Python环境中,正则表达式常用于数据清洗、数据提取和验证。例如,通过`re`模块,可以编写正则表达式...

    猫头鹰动态登录界面

    《猫头鹰动态登录界面设计解析》 在数字化时代的今天,用户界面设计已经成为产品与用户交互的关键环节。一个优秀的登录界面不仅能够提供便捷的操作体验,还能塑造品牌形象,增强用户的第一印象。本文将以“猫头鹰...

    超萌猫头鹰登录界面

    超萌的猫头鹰登录界面,当输入密码的时候,猫头鹰会用翅膀遮住双眼

    js css3萌萌哒猫头鹰动画特效

    本教程将深入探讨如何利用这两门技术制作一个“萌萌哒猫头鹰动画特效”。 首先,让我们从CSS3开始。CSS3引入了许多新的特性和功能,其中对于动画的支持是其一大亮点。`@keyframes`规则是实现动画的关键,它允许我们...

    漂亮的猫头鹰捂脸登录页面

    标题中的“漂亮的猫头鹰捂脸登录页面”指的是一个设计独特的网页登录界面,它采用了猫头鹰的形象作为设计元素,并且具有动态效果,比如“猫头鹰捂脸”,这可能是通过CSS3动画或者JavaScript实现的,增加了用户交互的...

    猫头鹰psd分层模板

    【标题】"猫头鹰psd分层模板"所涉及的知识点主要集中在Photoshop软件的使用、分层设计以及模板的应用上。Photoshop是Adobe公司推出的一款强大的图像处理和图形设计软件,广泛应用于视觉设计、广告创意、网页设计等...

    html5猫头鹰时钟特效

    在这个特效中,一只猫头鹰的形象被巧妙地融入其中,猫头鹰的眼睛会随着秒针的转动而转动,增加了视觉吸引力,提升了用户体验。 首先,我们要理解HTML5的核心特性之一——Canvas。Canvas是HTML5提供的一种基于矢量...

    CSS3绘制可爱的猫头鹰 眼睛会转动

    之前我们分享过很多基于纯CSS3的绘制动画效果,比如这款纯CSS3实现大象走路动画和纯CSS3绘制可爱的蚱蜢,效果都非常不错...今天要分享的这款也是基于纯CSS3可爱的猫头鹰动画,移动鼠标猫头鹰的眼睛还会转动,非常逼真。

    12.猫头鹰.py_python_

    猫头鹰.py”程序显然使用了Python的turtle库来绘制一个猫头鹰的形象。让我们深入探讨一下turtle库以及如何使用它来创建复杂的图形,包括猫头鹰。 turtle库源自Logo编程语言,它的核心概念是通过简单的命令控制一个...

    猫头鹰搜索引擎,爬虫,分词,索引,搜索

    "猫头鹰搜索引擎"是一个综合性的信息技术项目,它涵盖了网络爬虫、文本分词、索引构建以及搜索算法等核心组件。在这个系统中,有两个主要的应用模块:一个是"spider",即网络爬虫,负责从互联网上抓取数据;另一个是...

    Unity3D小猫头鹰3D模型

    本资源"Unity3D小猫头鹰3D模型"提供了一个可爱且低多边形(Low-Poly)设计的小猫头鹰模型,适合用于各种游戏场景,尤其是那些需要优化性能、保持流畅运行的移动平台游戏。 低多边形设计是一种流行的艺术风格,它...

    html5 canvas猫头鹰时钟代码.zip

    为了实现猫头鹰眼睛跟随秒钟转动的效果,开发者可能会设置一个定时器(`setInterval()`),每隔一定时间(通常为1秒)更新一次时间,并根据新的秒数调整猫头鹰眼睛的位置。通过计算角度,使用`translate()`和`rotate...

    jquery猫头鹰登录页面模板

    【jQuery猫头鹰登录页面模板】是一个以JavaScript和jQuery为核心技术构建的网页模板,它集成了多种视觉和交互效果,为用户提供了一种独特的登录体验。这个模板的特点在于其设计元素和功能的融合,如动态下雪背景、...

    超萌的猫头鹰登录界面

    "超萌的猫头鹰登录界面"是一个独特且有趣的实例,它不仅提供了基本的登录功能,还通过互动元素增加了用户与界面的互动性。这个登录界面的核心特点是,当用户输入密码时,设计中的猫头鹰角色会“捂住眼睛”,模拟出一...

Global site tag (gtag.js) - Google Analytics