我正在研究在 GET 请求中为同一参数名称传递多个值的正确方法是什么。
我见过这样的网址:
http://server/action?id=a&id=b
我见过这样的 URL:
http://server/action?id=a,b
我的理解是第一个是正确的,但我找不到任何引用资料。我查看了 http 规范,但看不到任何有关应如何构成 URL 的“查询”部分的信息。
我不想要一个说“两者都可以”的答案——如果我正在构建一个网络服务,我想知道这些方法中的哪一个是标准的,以便使用我的网络服务的人知道如何为同名。
那么,有人可以指点我一个官方引用来源来确认哪个选项是正确的吗?
最佳答案
的确,没有明确的标准。要支持该信息,请查看 Query String 中的维基百科。章节。有如下评论:
While there is no definitive standard, most web frameworks allow multiple values to be associated with a single field.[3][4]
此外,当您查看 RFC 3986 , 在 3.4 Query 部分, 没有多值参数的定义。
大多数应用程序使用您显示的第一个选项:http://server/action?id=a&id=b
。要支持该信息,请查看此 Stackoverflow link ,还有这个 MSDN link关于 ASP.NET 应用程序,它们对具有多个值的参数使用相同的标准。
但是,由于您正在开发 API,我建议您做对您来说最简单的事情,因为 API 的调用者在创建查询字符串时不会遇到太多麻烦。
关于http - 在 GET 请求中为相同参数名称传递多个值的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24059773/