直接答案:对 25 个首页只读响应头:21 个完全没有 Last-Modified,4 个有且都能解析;这 4 个里 1 个的 Last-Modified 与 Date 完全相同(E04,响应时生成)。ETag 只有 4 个(3 强 1 弱),Cache-Control 17 个、其中 10 个 max-age=0,Age 一个也没有。唯一能与 sitemap lastmod 比较的 E16,同年但不同日。
第 22、24、25 期看的都是页面里的字段:版权、lastmod、页面日期、JSON-LD。这一期换一条独立线索——服务器在响应头里给的日期。它不由模板决定,但也未必对应内容更新时间。
方法:robots 前置,只读头
沿用第 4 期 25 个首页 URL。每站先取 robots.txt,按 LingyiResearchBot 判定后,对首页发一次普通 GET,只记录状态与响应头,不保存正文。非 200 重试最多 3 次,全局间隔 5 秒,超时 20 秒,不执行 JS、不登录、不提交表单。日期头按 HTTP-date 解析;asctime 无时区时按 UTC 处理。
| 字段 | 判定 |
|---|---|
Last-Modified | 缺失 / 有值但不可解析 / 可解析,三态分开记 |
| “响应时生成” | Last-Modified 与 Date 相差 ≤5 秒 |
ETag | W/ 前缀记弱,其余记强 |
Cache-Control | 取 max-age / s-maxage;no-store / no-cache 记 0 |
结果:日期头比页面字段更少
| 响应头 | 站点数(25) | 说明 |
|---|---|---|
Last-Modified 可解析 | 4 | 2026 年 3 个、2025 年 1 个 |
Last-Modified 缺失 | 21 | 没有任何日期头 |
Last-Modified 不可解析 | 0 | — |
Last-Modified = Date | 1 | E04,响应时生成 |
ETag 强 / 弱 | 3 / 1 | 其余 21 个没有 ETag |
Cache-Control | 17 | 其中 max-age=0 10 个 |
Age | 0 | 没有站点返回缓存年龄 |
4 个有日期的页面,各不相同
| sample_id | Last-Modified | 与 Date 相差 | 页脚版权 | sitemap lastmod |
|---|---|---|---|---|
| E04 | 2026-11-02 06:40 | 0 秒 | 无 | 无 |
| E27 | 2026-11-02 06:17 | 约 27 分钟 | 无 | 无 |
| E30 | 2026-06-12 08:37 | 约 143 天 | 2002 | 无 |
| E16 | 2025-11-02 01:11 | 约 365 天 | 无 | 2025-10-14(同年不同日) |
时间均为响应头原值(GMT);“与 Date 相差”按同一响应的 Date 计算。
四种情况对应四种不同解释:E04 的头部随响应生成,不能当内容日期;E27 比响应时间早 27 分钟,可能是缓存或定时任务;E30 停在 6 月,而页脚写 2002,两个字段都不适合单独作为更新证据;E16 与 sitemap 同年但不同日,说明两条链路的日期没有对齐。
为什么首页普遍没有 Last-Modified
- 动态渲染:首页由程序实时拼装,服务器没有天然的文件修改时间。
- CDN / 反向代理:头部可能被重写或剥离,源站有也不一定传到客户端。
- 缓存策略:17 个站点给了
Cache-Control,10 个直接max-age=0,说明它们更在意“不要缓存”而不是“何时改过”。 - 没有约定:
Last-Modified是可选头,不是必填。
所以“没有 Last-Modified”既不能说明站点不更新,也不能说明服务器不维护;它只说明这次响应没有提供这个字段。
对验收的启示
- 把响应头当作独立证据源。 与页面字段分开记录,不互相替代。
- 先看
Last-Modified是否等于Date。 相等时它是响应时间,不是内容时间。 - 跨来源日期要同口径比较。 HTTP 头用 GMT,sitemap 用 ISO;不同日不代表冲突,先确认时区与格式。
- 缺头不是缺陷结论。 动态首页没有该头很常见,验收应写“无此字段”,而不是“未更新”。
- 缓存头单独看。
max-age=0只说明缓存策略,不说明内容新鲜度。
局限
- 单次请求:CDN 节点、缓存命中与回源都会影响头部。
- 只看首页:文章页、静态资源可能完全不同。
- 头部可被重写:不能从客户端头部反推源站配置。
- 可比样本极少:只有 1 个站点同时有
Last-Modified与 sitemap lastmod。 - 25 家 pilot:不外推行业总体,也不评价站点质量。
数据与复算
匿名数据:equipment-http-date-headers-2026.csv(25 行:sample_id、状态、Last-Modified 三态与值、Date、是否响应时生成、ETag 强弱、缓存头、Age、与 sitemap/版权的比较)。仓库内为 docs/research/2026-11-http-date-headers.csv。
解析逻辑:scripts/http_date_probe.py;单元测试 scripts/test_http_date_probe.py(14 项,无网络)。运行:
python -m unittest scripts.test_http_date_probe
配套:更新日期字段 pilot(JSON-LD / meta / time / 可见文字)、新鲜度信号 pilot(版权 / lastmod / 页面日期)、约 1 天复测(字段稳定性)、五源对照(25 站年份矩阵)。
数据来源与口径
- RFC 9110:
Last-Modified、Date、ETag与条件请求:rfc-editor.org。 Cache-Control指令:RFC 9111。- 采样:2026-11-02 14:41–14:46(Asia/Shanghai),UA
LingyiResearchBot/1.0,请求间隔 5 秒。