title: Is really QueryString case insensitive?
body: <p>I am working on a payment platform and, in response to a payment, a simple GET call, with some params in the query string, is made to my listener:</p>
  
  <blockquote>
    <p><a href="http://localhost/mytest/listener?TIMECREATED=04.08.2015+12%3A22%3A27&amp;statoattuale=OK&amp;PREVIOUSSTATE=IN&amp;CURRENTSTATE=payment_approved&amp;tipomessaggio=PAYMENT_STATE&amp;" rel="noreferrer">http://localhost/mytest/listener?TIMECREATED=04.08.2015+12%3A22%3A27&amp;statoattuale=OK&amp;PREVIOUSSTATE=IN&amp;CURRENTSTATE=payment_approved&amp;tipomessaggio=PAYMENT_STATE&amp;</a><strong>DESCRIZIONE</strong>=CAMBIO+DI+STATO&amp;datacreazione=04.08.2015+12%3A22%3A27&amp;<strong>stabilimento</strong>=xxxxxx&amp;<strong>MerchantNumber</strong>=xxxxxx&amp;<strong>descrizione</strong>=CAMBIO+DI+STATO&amp;OBJECT=PAYMENT&amp;TIMEGENERATED=04.08.2015+12%3A23%3A17&amp;<strong>MERCHANTNUMBER</strong>=xxxxxx&amp;statoprecedente=IN&amp;MERCHANTACCOUNT=xxxxxx&amp;numeroOrdine=myOrderNo&amp;numeroCommerciante=xxxxxx&amp;datagenerazione=04.08.2015+12%3A23%3A17&amp;ORDERNUMBER=myOrderNo&amp;<strong>Stabilimento</strong>=xxxxxx&amp;<strong>mac</strong>=CaWJiRCxbWH%2FsNFMvHUD2A%3D%3D&amp;<strong>MAC</strong>=AnsEvRHkvMwRL%2FgehVtnhA%3D%3D</p>
  </blockquote>
  
  <p>When I inspect <code>Request.QueryString</code> what I get is a mess of the param order and case. Seems like they are reordered with adjusted case for the first occurence. Like this:</p>
  
  <blockquote>
    <p>TIMECREATED=04.08.2015
    12:22:27&amp;statoattuale=OK&amp;PREVIOUSSTATE=IN&amp;CURRENTSTATE=payment_approved&amp;tipomessaggio=PAYMENT_STATE&amp;<strong>DESCRIZIONE</strong>=CAMBIO
    DI STATO&amp;<strong>DESCRIZIONE</strong>=CAMBIO DI STATO&amp;datacreazione=04.08.2015
    12:22:27&amp;<strong>stabilimento</strong>=xxxxxx&amp;<strong>stabilimento</strong>=xxxxxx&amp;<strong>MerchantNumber</strong>=xxxxxx&amp;<strong>MerchantNumber</strong>=xxxxxx&amp;OBJECT=PAYMENT&amp;TIMEGENERATED=04.08.2015
    12:23:17&amp;statoprecedente=IN&amp;MERCHANTACCOUNT=999988801&amp;numeroOrdine=myOrderNo&amp;numeroCommerciante=xxxxxx&amp;datagenerazione=04.08.2015
    12:23:17&amp;ORDERNUMBER=myOrderNo&amp;<strong>mac</strong>=CaWJiRCxbWH/sNFMvHUD2A==&amp;<strong>mac</strong>=AnsEvRHkvMwRL/gehVtnhA==</p>
  </blockquote>
  
  <p>To me it looks like a bug, becasue the RFC3986 states:</p>
  
  <blockquote>
    <p>When a URI uses components of the generic syntax, the component
    syntax equivalence rules always apply; namely, that the scheme and
    host are case-insensitive and therefore should be normalized to
    lowercase.  For example, the URI  is
    equivalent to <a href="http://www.example.com/" rel="noreferrer">http://www.example.com/</a>.  The other generic syntax
    components are assumed to be <strong>case-sensitive</strong> unless specifically
    defined otherwise by the scheme (see Section 6.2.3).</p>
  </blockquote>
  
  <p>At the moment I solved my problem by manually parsing <code>Url.Query</code>, but I still do not think that how behave Request.QueryString is correct.</p>
  
  <p>Can someone shed some light on the matter?</p>