原文、字节、候选结果的验证关系,强调可逆不等于确认来源
阅读口径

本文保留原字符串;操作在副本上进行,候选结果需由来源证据核对。

百分号表示字节

地址中 % 后接两位十六进制数是字节的表示方式。解释文字时还要按相应规则把字节解码;百分号形式长,并不表示文字损坏。

规范参考:WHATWG:URL Standard。操作场景与排查建议为本站说明。

只解码应处理的组件

路径、查询参数和完整 URL 有不同结构。不要对整个 URL 反复解码,尤其不要把编码后的分隔符无条件变成真正分隔符;应交给相应 URL 解析器。

观察是否重复编码

演示场景:一次编码产生 %,再次编码使它变成 %25。页面看到 %25 只是一条排查线索,要比较发送端构造参数和接收端解析结果,不能一律解码两遍。

可执行检查单

  1. 01保留原地址文本,不直接覆盖。
  2. 02使用 URL 解析器拆分组件。
  3. 03比较参数编码前与解析后的值。

一个常见问题

地址栏看起来不同代表内容不同吗?

不一定,浏览器可能对部分字符显示解码形式;应比较解析出的参数值与实际请求组件。

本页结论

URL 的结构与文本值要分别验证,避免修文字时改变链接含义。