If you're building your own HTTP requests, and want to get back data that a typical browser would get, it would be a good idea to lower case the Host header before sending it to the server.
A case in point is http://www.BestBuys.com
Try to fetch the page with curl, like this : curl http://www.BestBuys.com
You do get a page, but look at it closely, it is an error page.
<h1>PPI Exception (PDOException)</h1>
<div><strong>File:</strong> /data/www_bestbuys_com/releases/20131017195710/PPI/Vendor/Doctrine/Doctrine/DBAL/Driver/PDOConnection.php</div>
<div><strong>Line:</strong> 36</div>
<div><strong>Message:</strong> SQLSTATE[HY000] [2002] No such file or directory</div>
Do this with wireshark running and observe the Host header :Host: www.BestBuys.com\r\n
Now use curl, but specify a lowercased Host header :
curl -H "Host: www.bestbuys.com" http://www.BestBuys.com
Then you get the correct page. Browsers, understanding the imperfect implementations of web servers out there always lower case the Host. You can check this with wireshark. Try to get the page using any modern browser and look at the Host header in wireshark.
Here is another example of where the practical approach is not used in a very common library used to fetch web pages.
1 comment:
You might be eligible to get a $200 Best Buy Gift Card.
Post a Comment