什么RFC通过HTTP定义传递数组?大多数Web应用程序平台允许您通过GET或POST提供一组参数。以下URL是一个示例:
http://localhost/?var[1]=one&var[2]=two&var[3]=three
RFC1738定义了网址,但是网址的Backus-Naur表单(BNF)定义中缺少括号。此RFC也不包括POST。理想情况下,我想获得RFC中定义的此功能的BNF。
答案 0 :(得分:2)
URI由RFC 3986定义。
但是,您要问的是表单参数的编码。您需要查找HTML规范。
答案 1 :(得分:2)
根据Wikipedia,没有单一的规范:
虽然没有明确的标准,但大多数网络框架允许多个值与单个字段相关联(例如,field1 = value1& field1 = value2& field2 = value3)
该维基百科文章链接到以下Stack Overflow帖子,其中包含类似的问题:Authoritative position of duplicate HTTP GET query keys
这里的问题是表单参数可以是您想要的任何表单。一些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有关于如何编码表单参数的some information。遗憾的是,这不包括阵列。
在撰写本文时,我认为您的问题没有正确的答案 - 没有IETF RFC或W3C规范定义您感兴趣的行为。
(作为旁注,W3C HTML JSON form submission draft spec涵盖了发布数组,谢天谢地。)