内容类型为“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 表单时,我接受它,浏览器在提交请求时不受键=值对的任何特定顺序的约束。
但是,当请求由中间服务器传递时,HTTP 协议是否说明了这个顺序?Apache,nginx,IIS等服务器是否重新排列参数?如果将这样的 POST 请求发送到服务器,是否可以期望后端服务器代码(例如 PHP、Perl、Java)可以访问与发送的相同的 HTTP 请求正文?