title: get file size before downloading using HTTP header not matching with one retrieved from urlopen
body: <p>why is the content-lenght different in case of using <code>requests</code> and <code>urlopen(url).info()</code></p>
  
  <pre><code>&gt;&gt;&gt; url = 'http://pymotw.com/2/urllib/index.html'
  
  &gt;&gt;&gt; requests.head(url).headers.get('content-length', None)
  '8176'
  &gt;&gt;&gt; urllib.urlopen(url).info()['content-length']
  '38227'
  &gt;&gt;&gt; len(requests.get(url).content)
  38274
  </code></pre>
  
  <p>I was going to make a check for size of file in bytes to split the buffer to multiple threads based on <code>Range</code> in <code>urllib2</code>  but if I do not have the actual size of file in bytes it won't work..</p>
  
  <p>only <code>len(requests.get(url).content)</code> gives <code>38274</code> which is closest but still not correct and moreover it is downloading the content which i didn't wanted.</p>