HTTP 缓存与条件请求
HTTP、Web 与浏览器原理#Python全栈#第九阶段#HTTP、Web 与浏览器原理#HTTP 缓存与条件请求约 765 字 · 2 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
浏览器私有缓存与 CDN 等共享缓存有什么区别?
追问 用户资料与公开静态图片应怎样区别处理?为什么不能只讨论“有没有缓存”而忽略缓存位置?
缓存响应的鲜度与重新验证分别是什么?
追问 缓存尚新鲜时和需要验证时,是否都会向源站发送请求?如何从浏览器网络记录判断?
Cache-Control 的 max-age、s-maxage 与 Expires 怎样表达缓存有效期?
追问 私有缓存和共享缓存如何选择适用指令?Date、Age 与时间经过怎样影响实际剩余鲜度?
no-cache 与 no-store 有什么区别?
追问 哪个允许保存后在复用前验证,哪个要求不存储?为什么修改为 no-store 不应被当作清除所有历史缓存的手段?
private 与 public 怎样表达共享缓存约束?
追问 带用户身份的响应需要检查哪些额外条件?为什么状态码、Authorization 和缓存键也会影响能否缓存?
ETag 与 Last-Modified 各怎样标识已有表示?
追问 内容指纹与修改时间有何差别?强 ETag 与弱 ETag 在比较能力上有什么不同?
If-None-Match 与 If-Modified-Since 如何触发条件请求?
追问 两者同时存在时如何判断优先关系?服务器返回 304 后,客户端怎样更新并使用已有缓存?
Vary 为什么会影响缓存选择?
追问 语言、压缩编码或按 Origin 变化的响应怎样区分?只用 URL 作为缓存键可能导致什么错配?
为什么带内容哈希的静态资源与 HTML 首页常采用不同缓存策略?
追问 长期缓存资源、及时更新入口与保留旧资源之间如何配合,避免新旧版本混用?
“清除浏览器缓存后正常”说明了什么,又不能证明什么?
追问 浏览器 HTTP 缓存、Service Worker 与 CDN 缓存如何分别核对?强制刷新是否能替代正确的版本与缓存设计?
核对资料: RFC 9111:HTTP 缓存。