【问题标题】:URL: semicolon instead of question markURL:分号代替问号
【发布时间】:2013-09-20 17:33:07
【问题描述】:

我正在以这种格式调用网络服务:

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

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

【问题讨论】:

标签: rest url


【解决方案1】:

这是 path 参数的一部分,而不是 query 参数的一部分。您可以在http://www.skorks.com/2010/05/what-every-developer-should-know-about-urls/找到有关如何构建 URL 的详细信息

编辑:实际上,我之前一直在寻找这个链接,它可以更好地解释它并向您展示一些奇怪但有效的案例:https://www.talisman.org/~erlkonig/misc/lunatech%5Ewhat-every-webdev-must-know-about-url-encoding/(最初位于现在已死的 url 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

【讨论】:

  • 您的第二个链接已失效 :(
  • 只是为了让大家知道,虽然证书无效,但护身符url在2019年仍然有效
【解决方案2】:

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

【讨论】:

  • 虽然此链接可能有助于您回答问题,但您可以通过获取链接的重要部分并将其放入您的答案来改进此答案,这样可以确保您的答案仍然是一个答案,如果链接被更改或删除:)
  • 链接已被删除。 RFC 编号就足够了。
【解决方案3】:

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

我们建议 HTTP 服务器实现者,特别是 CGI 实现者支持使用“;”代替“&”来省去作者以这种方式转义“&”字符的麻烦。

【讨论】:

  • 在我的例子中,分号不是用来代替“&”而是代替“?”
  • @aCa:您的链接仍然是关于查询部分的,而他的示例实际上是关于路径参数的。
猜你喜欢
  • 2022-10-16
  • 2011-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-26
  • 1970-01-01
  • 2014-06-29
  • 1970-01-01
相关资源
最近更新 更多