网址:分号而不是问号

时间:2013-09-16 14:13:26

标签: rest url

我正在以这种格式呼叫网络服务:

http://some.server/rest/resource;a=b

它有效,但这有效吗?我见过了;用作替代&但从未见过这样的网址。我一直在寻找答案,但没有找到有效的答案。如果有效,这种网址的含义是什么?

3 个答案:

答案 0 :(得分:11)

这是路径参数的一部分,而不是查询参数的一部分。您可以在http://www.skorks.com/2010/05/what-every-developer-should-know-about-urls/

找到有关如何构建网址的详细信息

编辑:我实际上是在寻找这个链接,这更好地解释了它,并向您展示了一些奇怪但有效的案例:https://www.talisman.org/~erlkonig/misc/lunatech%5Ewhat-every-webdev-must-know-about-url-encoding/(最初在现在已死的网址 http://blog.lunatech.com/2009/02/03/what-every-web-developer-must-know-about-url-encoding

但无论如何,这是有效的:http://www.blah.com/some/crazy/path.html;param1=foo;param2=bar

答案 1 :(得分:0)

这可能会回答您的问题:Semicolon as URL query separator

  

我们建议HTTP服务器实现者,特别是CGI实现者支持使用“;”取代“&”为作者省去逃避“&”的麻烦这种方式的人物。

答案 2 :(得分:0)

指定路径参数的RFC2396已过时。更新的版本是RFC 3986 - 在正式指定查询字符串之前,这个版本没有路径参数,但是在示例中的5.4.1节中仍然有它。