4

在研究了 Google 和 SO 之后,对此似乎存在相互矛盾的意见。

我们遇到了 Google Chrome 将|分隔符替换为的问题%7C,而 Firefox 和 Safari 则没有。

这是一个例子:

http://www.example.com/page1|sub-page2|sub-page-3

在为语义 URL 选择分隔符时是否有任何严格的规则要遵循,并且是否有任何强烈的反对(或解决方法时)使用|

4

2 回答 2

3

|不是 URL 中的有效字符。现代浏览器会在发送时对其进行静默编码%7C,并且可能会或可能不会在地址栏中显示此更改。同样,服务器会默默地为您解码角色。

这在上个千年是个问题,浏览器会因为你没有指定而崩溃http://,但今天你可以使用任何你想要的东西,浏览器会处理它。但是,自动解析器(例如http://example.com/test|fish Markdown)可能不同意它是一个有效的 URL。在这种情况下,它看起来确实如此,但在我的论坛上尝试一下,它会抱怨你。

于 2014-04-01T15:56:29.627 回答
1

Internet Explorer/chrome 在发出页面请求后在地址栏中显示 url 时使用 url 编码,%7C 是显示管道('|')的安全方式,因此 chrome 这样做不是问题。

作为使所有浏览器的行为方式相同的厚颜无耻的修复,为什么不从一开始就使用 %7C 作为分隔符,而不是管道,然后所有浏览器都应该在幕后将其解释为管道,但显示它在地址栏中显示为 &7C。

于 2014-04-01T16:00:22.083 回答