title: Order of HTTP POST parameters changed?
body: <p>An HTTP POST request with content type "application/x-www-form-urlencoded" has parameters encoded in the body in the form of key=value pairs, concatenated with the &amp; delimiter. Example from <a href="http://www.opencalais.com/HTTPexamples" rel="nofollow">http://www.opencalais.com/HTTPexamples</a>:</p>
  
  <pre><code>POST /enlighten/rest HTTP/1.1
  Host: api.opencalais.com
  Content-Type: application/x-www-form-urlencoded
  Content-Length: length
  
  licenseID=string&amp;content=string&amp;paramsXML=string
  </code></pre>
  
  <p>I take it when a user fills out an ordinary POST form on a web page, the browser is not bound to any particular order of the key=value pairs when submitting the request.</p>
  
  <p>However, does the HTTP protocol say anything about this order as the request is passed on by  intermediate servers? Do any servers such as Apache, nginx, IIS rearrange the parameters? If such a POST request is sent to a server can one expect that the back-end server code (say PHP, Perl, Java) has access to the identical HTTP request body as sent?</p>