跳转到内容
搜索文档

URL 规范化工作原理

最后更新 查看 MarkdownAgent 设置

URL 规范化会修改传入 URL 中的分隔符、编码元素和字面量字节,使其符合一致的格式标准。

例如,假设有一个 WAF 自定义规则阻止 URL 匹配 www.example.com/hello 的请求。该规则不会阻止包含编码元素的请求,即 www.example.com/%68ello。在 Cloudflare 全球网络上规范化传入 URL 有助于简化包含 URL 的规则表达式。

两种可用的 URL 规范化类型是:

发生 URL 规范化的位置取决于配置的设置

有关不同设置及其对请求 URL 的影响的示例,请参阅 URL 规范化示例

RFC 3986 规范化

根据 RFC 3986 执行的 URL 规范化如下:

  • 以下未保留字符被百分号解码(从其 %XX 编码形式转换回原始字符):
    • 字母字符:a-zA-Z(从 %41-%5A%61-%7A 解码)
    • 数字字符:0-9(从 %30-%39 解码)
    • 连字符 - (%2D)、句点 . (%2E)、下划线 _ (%5F) 和波浪号 ~ (%7E)
  • 这些保留字符不会被编码或解码:: / ? # [ ] @ ! $ & ' ( ) * + , ; =
  • 其他字符(例如字面量字节值)被百分号编码。
  • 百分号编码表示转换为大写。
  • URL 路径根据删除点段 (Remove Dot Segments)协议进行规范化。

Cloudflare 规范化

使用 Cloudflare URL 规范化时,将按以下顺序对传入请求的 URL 应用一些额外的规范化技术:

  1. 将反斜杠 (\) 规范化为正斜杠 (/)。
  2. 合并连续的正斜杠(例如,// 将被规范化为 /)。
  3. 对生成的 URL 执行 RFC 3986 规范化

这篇文档对您有帮助吗?