是' |'语义URL的推荐分隔符?

时间:2014-04-01 15:49:25

标签: url delimiter percent-encoding

在研究Google和SO后,似乎对此存在矛盾。

我们已经遇到了谷歌浏览器的问题,将|分隔符替换为%7C,而Firefox和Safari则没有。{/ p>

以下是一个例子:

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

在为语义URL选择分隔符时是否有任何严格的规则?是否有使用|的强反对(或何时变通)?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

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