【发布时间】:2012-12-29 20:10:35
【问题描述】:
内容类型为“application/x-www-form-urlencoded”的 HTTP POST 请求在正文中以 key=value 对的形式编码参数,并与 & 分隔符连接。来自http://www.opencalais.com/HTTPexamples的示例:
POST /enlighten/rest HTTP/1.1
Host: api.opencalais.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length
licenseID=string&content=string¶msXML=string
当用户在网页上填写普通的 POST 表单时,浏览器在提交请求时不会绑定到任何特定的 key=value 对顺序。
但是,当请求由中间服务器传递时,HTTP 协议是否说明了这个顺序? Apache,nginx,IIS等服务器是否重新排列参数?如果将这样的 POST 请求发送到服务器,是否可以预期后端服务器代码(例如 PHP、Perl、Java)可以访问与发送的相同的 HTTP 请求正文?
【问题讨论】:
-
我看不出中间服务器这样做的理由。