网络
- 分类
- 网络协议
- 难度
- 未设置
- 来源数
- 1
- 更新时间
- 2026/03/29 15:48
答案
HTTP缓存主要包括强制缓存和协商缓存两种形式。 强制缓存就是浏览器来判断缓存是否过期,如果没过期则直接使用。 而协商缓存有两种形式: 1. if-modified-since, last-modified:当资源过期后,浏览器发现响应头中包含last-modified,则向服务器发送请求,带上last-modified,服务器收到后如果看到if-modified-since,则比较资源的更新时间和last-modified ,如果资源更新,则进行返回,否则返回304 2. etag,if-none-match:当资源过期后,浏览器如果发现响应头里有etag,则将etag填入if-none-match,然后发送给服务器,服务器接收到后会比较etag和资源,如果发生变化,则返回,否则返回304 第一种方式是基于时间的,它的缺陷是以秒为单位的,不能判断秒以内的修改,而etag则可以。且有可能修改时间发生变化而资源本身并没有被改变。
相关题目(5)
元信息
审核状态: active
关联来源: 1
来源面经题(0)
这道题目前没有手动沉淀的面经题来源。
来源(1)
Java八股(四大件).md
knowledge_noteQuestion 16: 介绍一下HTTP缓存
Source answer: HTTP缓存主要包括强制缓存和协商缓存两种形式。 强制缓存就是浏览器来判断缓存是否过期,如果没过期则直接使用。 而协商缓存有两种形式: 1. if-modified-since, last-modified:当资源过期后,浏览器发现响应头中包含last-modified,则向服务器发送请求,带上last-modified,服务器收到后如果看到if-modified-since,则比较资源的更新时间和last-modified ,如果资源更新,则进行返回,否则返回304 2. etag,if-none-match:当资源过期后,浏览器如果发现响应头里有etag,则将etag填入if-none-match,然后发送给服务器,服务器接收到后会比较etag和资源,如果发生变化,则返回,否则返回304 第一种方式是基于时间的,它的缺陷是以秒为单位的,不能判断秒以内的修改,而etag则可以。且有可能修改时间发生变化而资源本身并没有被改变。
Reviewed answer: HTTP缓存分为强制缓存和协商缓存。协商缓存常见实现有Last-Modified/If-Modified-Since和ETag/If-None-Match,未修改时返回304。