什么 RFC 定义了通过 HTTP 传递的数组?大多数 Web 应用程序平台允许您通过 GET 或 POST 提供一组参数。以下 URL 是一个示例:
http://localhost/?var[1]=one&var[2]=two&var[3]=three
RFC1738定义了 URL,但是 URL 的 Backus-Naur Form(BNF) 定义中缺少括号。此 RFC 也不涵盖 POST。理想情况下,我希望获得 RFC 中定义的此功能的 BNF。
什么 RFC 定义了通过 HTTP 传递的数组?大多数 Web 应用程序平台允许您通过 GET 或 POST 提供一组参数。以下 URL 是一个示例:
http://localhost/?var[1]=one&var[2]=two&var[3]=three
RFC1738定义了 URL,但是 URL 的 Backus-Naur Form(BNF) 定义中缺少括号。此 RFC 也不涵盖 POST。理想情况下,我希望获得 RFC 中定义的此功能的 BNF。
根据Wikipedia,没有单一规范:
虽然没有明确的标准,但大多数 Web 框架允许将多个值与单个字段相关联(例如 field1=value1&field1=value2&field2=value3)
该 Wikipedia 文章链接到以下 Stack Overflow 帖子,该帖子涵盖了一个类似的问题:重复 HTTP GET 查询键的权威位置
这里的问题是表单参数可以是任何你想要的。一些 Web 框架已经选择key[number]=value
了数组,而另一些则没有。有趣的是,RFC1866第 8.2.4 节,第 48 页(注意:此 RFC 是历史的而非当前的)显示了一个示例,其中在 POST 表单中使用了两次相同的密钥:
name=John+Doe
&gender=male
&family=5
&city=kent
&city=miami
&other=abc%0D%0Adef
&nickname=J%26D
在 W3C 方面,HTML 4.01 有一些关于如何编码表单参数的信息。可悲的是,这不包括数组。
在撰写本文时,我认为您的问题没有正确答案 - 没有 IETF RFC 或 W3C 规范定义您感兴趣的行为。
(作为旁注,W3C HTML JSON 表单提交草案规范涵盖了发布数组,谢天谢地。)
URI 由 RFC 3986 定义。
但是,您要问的是表单参数的编码。您需要为此查找 HTML 规范。