title: What standard specifies inner structure of the query component in HTTP URI
body: <p>According to RFC3986 (URI),</p>
  
  <pre><code>The query component is indicated by the first question
  mark ("?") character and terminated by a number sign ("#") character
  or by the end of the URI.
  </code></pre>
  
  <p>And specifies what characters are allowed inside. That's generic URI.</p>
  
  <p>In daily interaction with various HTTP/Web servers, in URI <code>http</code> scheme, we're seeing query components represented as <code>key=value</code> pairs separated by <code>&amp;</code> sign. RFC7230 (HTTP/1.1) says nothing about it, just that the content of the query component corresponds to RFC3986 generic definition.</p>
  
  <p>The only standard defining said key-value pairs is HTML 4.01 while talking about content type <code>application/x-www-form-urlencoded</code>. It's also the only standard saying <code>+</code> should be treated as Space character in the query component.</p>
  
  <p>However, as far as I could dig up in the specs, <code>Content-Type</code> header only applies to the message body, not its URI. And when, as an experiment, I'm googling for "asd zxc" Chrome sends the request <code>/search?q=zxc+asd</code> to Google without specifying said <code>application/x-www-form-urlencoded</code> content type at all.</p>
  
  <p>Is it just conventional or am I missing something?</p>