Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms HTTP参数名称必须是唯一的吗?_Forms_Http - Fatal编程技术网

Forms HTTP参数名称必须是唯一的吗?

Forms HTTP参数名称必须是唯一的吗?,forms,http,Forms,Http,将同名查询参数发送到各种web服务器的支持程度如何(如果有的话)?i、 e <form ...> <input name="a" value="va" /> <input name="a" value="vb" /> 大多数服务器会将其解释为数组还是其中一个值会被删除? i、 e.当访问“a”时,来自PHP的$u请求是否会返回一个数组?还是只返回其中一个值?是否所有支持这些输入并返回数组所需的(体面的)web服务器?根据复选框,输入控件至

将同名查询参数发送到各种web服务器的支持程度如何(如果有的话)?i、 e

<form ...>
    <input name="a" value="va" />
    <input name="a" value="vb" />

大多数服务器会将其解释为数组还是其中一个值会被删除? i、 e.当访问“a”时,来自PHP的$u请求是否会返回一个数组?还是只返回其中一个值?是否所有支持这些输入并返回数组所需的(体面的)web服务器?

根据复选框,输入控件至少允许共享相同的名称,以便“允许用户为同一属性选择多个值”(见第17.2.1节)。对于单选按钮,实际上需要共享相同的名称,以确定哪些按钮属于同一组。(但是,这只会导致一个值被发送到服务器。)HTML4规范似乎没有说明是否允许对其他输入类型共享名称,但其工作原理应该与复选框相同


HTML5规范实际上明确指出,在中“多个控件可以具有相同的名称”。鉴于HTML已经存在很长时间了,而且HTML5规范与HTML4规范并没有太大区别,至少对于表单而言,我认为可以肯定地说,大多数现代浏览器/服务器将正确处理这种情况,并且不会破坏值。当然,最好的确定方法是在您关心的浏览器/服务器上自己尝试。

答案完全取决于您使用的框架。当查询URL参数的值时,一些框架返回给定名称的第一个参数。有些返回该名称的最后一个参数。其他的则返回该名称的参数的逗号分隔列表。还有一些返回该名称的参数字符串数组


HTTP本身没有提供任何关于参数名称唯一性的指导,甚至没有定义querystring的格式。
a=b&c=d
语法只是HTML表单使用的一种约定,但其他格式完全合法,在某些情况下确实会使用。

您的问题是关于HTTP还是关于HTML?HTTP甚至没有定义查询字符串的格式(除了它如何开始(?)和结束(#))。