直接答案:25 个官网里,17 个的 http 入口最终跳到 https,8 个不升级;https 可访问 21 个(另外 4 个请求失败:2 个连接失败、2 个证书错误);最终主机 19 个 www、2 个裸域;响应带 HSTS 的只有 4 个;声明 canonical 的只有 9 个——但这 9 个的主机全部与实际落点一致。单次请求,pilot。
这一层决定“同一内容有几个入口”。http 与 https、www 与裸域、带参与不带参,如果都能打开且互不声明,就会分散链接与抓取。此前几期看的是页面内容与抓取政策,这一期看入口本身。
方法
对每个站点分别请求 http://host/ 与 https://host/,跟随重定向并记录最终 URL、状态码与跳转次数;再从 https 首页解析第一个 canonical 与 Strict-Transport-Security 响应头。UA 为 LingyiResearchBot/1.0,每站 2 个请求、间隔 6 秒、20 秒超时。
| 指标 | 判定 |
|---|---|
| http→https | http 入口的最终 scheme 是否为 https |
| 主机一致 | 两个入口最终 host 是否相同(忽略端口与大小写,保留 www 差异) |
| www / 裸域 | https 最终 host 是否以 www. 开头 |
| HSTS | https 响应是否带 Strict-Transport-Security |
| canonical 主机一致 | canonical 的 host 是否等于 https 最终 host |
结果一:升级、失败与并存
| 入口情况 | 站点数 | 说明 |
|---|---|---|
| http 最终到 https | 17 / 25 | 主流做法 |
| http 最终仍是 http | 8 / 25 | 其中 3 个 https 也能单独打开,属两个入口并存 |
| https 可访问 | 21 / 25 | 最终落点全部为 https |
| https 请求失败 | 4 / 25 | 2 个连接失败、2 个证书错误 |
4 个 https 失败要分开看:2 个在“不校验证书”的情况下仍然连不上(连接层失败);2 个是证书错误,其中 1 个不校验证书时返回 403、另 1 个 200 但最终跳回 http://。后者是“https 存在但降级”,比单纯没有 https 更值得修。
结果二:主机与 HSTS
- 19 个最终落在 www,2 个在裸域(hehaixny.com、cn-kede.com),没有观察到 www↔裸域互跳。
- 21 个站点两个入口最终主机一致;4 个因 https 失败无法比较。
- HSTS 只有 4 个:多数站点做了“跳转”,但没有让浏览器记住“以后只走 https”。
- http 入口平均跳转 0.8 次;最多的也只需要 2 跳。
结果三:canonical 少,但写对率高
| canonical | 站点数 | 说明 |
|---|---|---|
| 已声明 | 9 / 25 | 全部为 https 绝对地址 |
| 未声明 | 16 / 25 | 常见于模板较旧的站点 |
| 主机与落点一致 | 9 / 9 | 已声明的都写对了主机 |
| 主机不一致 | 0 | — |
结论有点反直觉:不是“写错的多”,而是“根本没写”。未声明的 16 个站点暂时没有错误,但一旦出现带参链接、多域名或改版,就缺少合并信号。加一条 canonical 的成本远低于事后清理重复入口。
五条可执行结论
- http 只做一件事:301 到 https。 不要让 http 与 https 各自可访问。
- https 不要跳回 http。 本期有 1 个证书错误站点出现降级;这是最该优先修的类型。
- 选一个主机名。 www 或裸域都可以,但另一个应 301 过来;本期虽未见互跳冲突,但 2 个裸域站点值得自查。
- 加 HSTS。 4/25 说明多数站点只做了跳转,没有做“记住”。
- 补 canonical。 16 个缺失;已声明的 9 个主机全对,说明模板加一行即可。
局限
- 单次请求:重定向与证书表现可能受 CDN、地域、WAF 影响。
- 只测根路径:深链、语言子目录、带参 URL 未覆盖。
- 证书结论有限:只区分“连接失败/证书错误/200”,不评估证书链细节与有效期。
- canonical 只取第一个:重复声明不展开。
- 样本非随机:25 家 pilot,不外推行业。
数据与复算
匿名数据:equipment-host-canonical-pilot-2026.csv(25 行、19 字段,含 notes 标注 4 个 https 失败与 1 个 http 400)。仓库内为 docs/research/2026-11-host-canonical-pilot.csv。
解析与判定:scripts/host_canonical_probe.py;单元测试 scripts/test_host_canonical_probe.py(17 项,无网络)。运行:
python -m unittest scripts.test_host_canonical_probe
配套阅读:30 家 robots 扫描、性能代理 pilot、12 条验收条款模板(第 1 条范围与页面清单、第 6 条多语言声明)。
数据来源与口径
- HTTP 状态码与重定向:RFC 9110:rfc-editor.org。
- HSTS:RFC 6797:rfc-editor.org。
- canonical:RFC 6596:rfc-editor.org。
- 采样:2026-11-02 04:10 前后(Asia/Shanghai),UA
LingyiResearchBot/1.0,每站 2 个请求、间隔 6 秒。