HTTP GET:相同的GET参数多次,这是否允许RFC?

时间:2010-06-08 19:14:05

标签: http

都是“标准兼容(HTTP RFC?)”Web服务器被迫“以某种方式”提供一些方法来获取与某种列表/数组同名的所有参数?或者将使用相同的参数名称导致覆盖:

示例:

http://www.stackoverflow?myparam=value1&myparam=value2

这会导致myparam保持值“value1,value2”或仅“value2”(由于覆盖并仅使用最后一个)。这种行为是否由某些标准规定?

感谢 哈德

3 个答案:

答案 0 :(得分:3)

Web服务器根本不考虑查询;他们只是使用路径在文档根目录下找到相应的文件。如果目标文件旨在由特定处理程序处理(例如以.php.asp.shtml等结尾的文件),则其余部分取决于处理程序。 specification of application/x-www-form-urlencoded对此没有任何说明。

因此,未指定如何处理重复的名称,因此可能取决于解释此类查询的语言/程序。

答案 1 :(得分:1)

虽然RFC 1867RFC 2388中没有明确禁止使用 application / x-www-form-urlencoded 的请求,但禁止使用 multipart / form-data 所以我试图避免为所有POST和GET请求做这件事。我认为RFC应该真正解决这个问题。

来自http://tools.ietf.org/html/rfc2388#section-3(HT @Gumbo)

  

multipart / form-data的定义

     

媒体类型的multipart / form-data遵循所有规则   [RFC 2046]中概述的多部分MIME数据流。在形式上,   有一系列字段由填写的用户提供   表格。每个字段都有一个名称。在给定的表格中,名称   是独一无二的。

虽然许多语言/框架支持鼓励鼓励这样做的编译指示(例如Ruby on Rails,PHP),但并不是所有客户端库都支持它,并且可能导致序列化问题。

答案 2 :(得分:1)

HTTP URI查询部分的格式根本不是由HTTP规范定义的。

您看到的结构是HTML处理表单的方式的工件,没有别的。