都是“标准兼容(HTTP RFC?)”Web服务器被迫“以某种方式”提供一些方法来获取与某种列表/数组同名的所有参数?或者将使用相同的参数名称导致覆盖:
示例:
http://www.stackoverflow?myparam=value1&myparam=value2
这会导致myparam保持值“value1,value2”或仅“value2”(由于覆盖并仅使用最后一个)。这种行为是否由某些标准规定?
感谢 哈德
答案 0 :(得分:3)
Web服务器根本不考虑查询;他们只是使用路径在文档根目录下找到相应的文件。如果目标文件旨在由特定处理程序处理(例如以.php
,.asp
,.shtml
等结尾的文件),则其余部分取决于处理程序。 specification of application/x-www-form-urlencoded对此没有任何说明。
因此,未指定如何处理重复的名称,因此可能取决于解释此类查询的语言/程序。
答案 1 :(得分:1)
虽然RFC 1867或RFC 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处理表单的方式的工件,没有别的。