http - 在 GET 请求中为相同参数名称传递多个值的正确方法

标签 http get

我正在研究在 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/

相关文章:

c - 实现 HTTP 1.0 服务器时出现的问题

javascript - 带有 JSON 的 Angularjs,GET 可以工作,但 POST 不行

tomcat - Tomcat7 中的 Akka 应用程序未发送响应

c - 如何从字符串中获取字符串(C 中的字符指针)

http - 有什么理由不在 Web 应用程序中使用 HTTP PUT 和 DELETE 吗?

Python 请求导致空白响应

java - 在 Java 中将 BigDecimal 字段作为 JSON 字符串值返回

ajax - react ajax : multiple nested fetch Get

JavaScript 反射 : obtaining a variable's name?

internet-explorer - IE 未发送 HTTP header 'Connection: Close'