现场笔记

3 / 4
Accept-Encoding 选择 identity 或编码后表示。字节不同的两个变体使用不同的示意强标签 A 与 B。Vary: Accept-Encoding 告诉共享缓存按协商请求字段匹配。

压缩会改变所选中的 HTTP 表示

分开测试压缩与未压缩请求,让缓存和验证器描述实际送达的字节。

六月 29, 2026 · 1 分钟 · XB Field Notes
矩阵区分 no-cache 与 no-store:前者允许存储,但复用前必须校验;后者要求缓存不存储响应。

缓存头是两套时钟的契约

把浏览器端新鲜度与源站校验分开,再验证实现两者的响应头。

六月 25, 2026 · 1 分钟 · XB Field Notes
先验证 HTTPS,以短时长开始 HSTS,观察后再增加时长。子域作用域与预加载需要独立决定;恢复期间必须保持 HTTPS 可用。

HSTS 应带着恢复计划来灰度发布

HSTS 是被缓存的浏览器策略,因此一个配置错误可能比创建它的服务器变更活得更久。

六月 23, 2026 · 1 分钟 · XB Field Notes
GET 与 HEAD 对齐 URL、请求头和发布版本。两个响应卡片都展示类型、验证器、编码与长度字段类别;只有 GET 提供正文和校验和证据。HEAD 长度允许省略,提供时应描述 GET。

HEAD 应描述与 GET 相同的表示

HEAD 是 GET 的元数据视图;状态与表示头应讲同一个故事。

六月 22, 2026 · 1 分钟 · XB Field Notes
DNS 切换时,新端点已准备就绪,旧端点继续服务。两者重叠持续到观察阶段;修改 TTL 不会改写已有缓存应答。

DNS 变更需要一个感知缓存的回滚窗口

提前准备 TTL,观察权威与递归应答,并让两个端点在整个缓存窗口内都有效。

六月 18, 2026 · 1 分钟 · XB Field Notes
有效 CAA 示例 issue letsencrypt.org 分为两个并列结果:已授权 CA 通过此项签发策略,未授权 CA 被阻止。已有证书不受策略变更影响。

CAA 记录应授权你实际使用的签发者

CAA 收窄了证书签发策略,但一条错误的记录会像过期证书一样有效地阻断续期。

六月 17, 2026 · 1 分钟 · XB Field Notes
省略 Domain 将 Cookie 限定在设置它的主机;Domain=example.test 扩展到该域及 app、api 等符合条件的子域。Path 选择请求,不提供授权。

Cookie 作用域应比应用边界更窄

发送给过多主机或路径的 Cookie,会放大这些边界上每个错误的冲击。

六月 15, 2026 · 1 分钟 · XB Field Notes
对 /assets/site.css 的样式请求分为两种示意响应:200 带 CSS 字节并声明 text/css,或 404 带 HTML 字节并声明 text/html。nosniff 的说明限定在脚本与样式目标。

Content-Type 应描述你实际发送的字节

文件名只是一个提示,响应头才是面向浏览器的表示契约。

六月 11, 2026 · 1 分钟 · XB Field Notes