pub fn normalize_host_key(host: &str) -> StringExpand 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。