title: Difference between HTTP Authorization header and Query string parameters
body: <p>While I was reading about interaction with <code>Amazon S3</code>, I came to know that request authentication with <code>Amazon AWS</code> is done in 2 ways</p>
  
  <ol>
  <li><a href="http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html" rel="noreferrer">HTTP Authorization</a>:
  Using the HTTP Authorization header is the most common method of providing authentication information</li>
  <li><a href="http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html" rel="noreferrer">Query string parameters</a>:
  Using query parameters to authenticate requests is useful when you want to express a request entirely in a URL. This method is also referred as presigning a URL.</li>
  </ol>
  
  <p>The question is in which situation should I prefer one method over the other. Do these two authentication methods have their own advantages and disadvantages? As a developer, by using <code>query string parameters</code> method I can presign the URL which enables the end users to temporarily access the <code>Amazon S3</code> resources by entering the presigned URL in the web browser. Can I use <code>HTTP Authorization</code> method to achieve the same thing? If so which method is better to use and what are their respective limitations?</p>