前端浏览器缓存对程序的影响(浏览器与缓存相关的另一个重要的header)

 2025-06-01  阅读 160  评论 0

摘要:#2021加油带头人#昨天我们介绍了ETag。浏览器会缓存Nginx返回的ETag值。今天我们来学习另一个浏览器缓存相关的header。当浏览器通过时间认为缓存已经过期了,这个时候浏览器被再次请求的时候,就会去Nginx问一下是否内容有修改过,如果内容没有修改过,就返回304那么内容就不用返回了。这

#2021加油带头人#昨天我们介绍了ETag。

浏览器会缓存Nginx返回的ETag值。今天我们来学习另一个浏览器缓存相关的header。

前端浏览器缓存对程序的影响(浏览器与缓存相关的另一个重要的header)(1)

当浏览器通过时间认为缓存已经过期了,这个时候浏览器被再次请求的时候,就会去Nginx问一下是否内容有修改过,如果内容没有修改过,就返回304那么内容就不用返回了。这样就节省了带宽资源。

那么Nginx是如何快速判断该资源是否被修改过呢?

浏览器会通过If-None-Match头部填入ETag的值。

这样Nginx在收到请求后会用ETag的值和If-None-Match里的值进行比较。

当2个值想匹配的时候就会直接返回304.

前端浏览器缓存对程序的影响(浏览器与缓存相关的另一个重要的header)(2)

当没有带If-None-Match头部,或者If-None-Match头部的值与ETag不匹配的时候返回200和资源

前端浏览器缓存对程序的影响(浏览器与缓存相关的另一个重要的header)(3)

需要注意的是:服务器端在生成状态码为304的响应的时候,必须同时生成以下会存在于对应的200响应中的头部:Cache-Control,Content-Location,Date,ETag,Expires和Vary。

说到304,最近有个哥们面试还问到了http状态码 301 302 304呢。

现在大家应该对这个304的使用场景,及作用比较清晰了。

,

版权声明:xxxxxxxxx;

原文链接:http://cn.tdroid.net/cedbfCz0HBwwEUFw.html

发表评论:

管理员

  • 内容265489
  • 积分0
  • 金币0
关于我们
lecms主程序为免费提供使用,使用者不得将本系统应用于任何形式的非法用途,由此产生的一切法律风险,需由使用者自行承担,与本站和开发者无关。一旦使用lecms,表示您即承认您已阅读、理解并同意受此条款的约束,并遵守所有相应法律和法规。
联系方式
电话:
地址:广东省中山市
Email:
注册登录
注册帐号
登录帐号

Copyright © 2022 太卓开发网 Inc. 保留所有权利。 泰达科技网易库网

页面耗时0.2310秒, 内存占用1.33 MB, 访问数据库18次