Skip to main content

normalize_host_key

Function normalize_host_key 

Source
pub fn normalize_host_key(host: &str) -> String
Expand description

规范化 Host 用于缓存键等值折叠(scheme 无关策略)。

§规则(缓存键专用,区别于 normalize_authority 的 RFC authority 语义)

  • trim + 小写化
  • 去 FQDN 尾点(example.com.example.com
  • 无条件去除默认端口(:80 / :443,不感知 scheme)——缓存键 要求“同一监听服务“折叠;严格 URL authority 语义请用 normalize_authority(scheme 感知)。
  • IPv6 方括号保留;]: 之侧仅数字视作端口

§统一实现约定

本函数是全 workspace 唯一的缓存键 host 规范化实现 (zenith-cache 经此接口规范化,禁止第二份副本)。

§normalize_authority 的分工差异(设计使然,禁止“统一“两者行为)

  • 默认端口:本函数不感知 scheme:80/:443 一律剥离(缓存键要求 “同一监听服务“折叠);normalize_authority 仅按 scheme 省略 (http→80、https→443)。
  • FQDN 尾点:本函数剥离(example.com.example.com); normalize_authority 保留尾点。
  • 空白:本函数 trim 两端空白;normalize_authority 不 trim。