Nasıl bildiği hakkındaki sorunuzu yanıtlamak için , tarayıcınızın sunucuya ne gönderdiği ile ilgili olması gerekir.
Sistemin her zaman bir IP adresine çözdüğü konusunda haklısınız, ancak tarayıcı HTTP başlığında erişmeye çalıştığınız URL'yi gönderir.
İşte çevrimiçi bulduğum, Windows'ta Firefox kullanıyormuşsunuz gibi görünen apple.com
ve adres çubuğuna yazılan örnek bir başlık :
GET / HTTP/1.1
Host: apple.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
IP adresini kullandıysanız, başlığın nasıl görüneceği:
GET / HTTP/1.1
Host: 17.142.160.59
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Bunların her ikisi de bir soket üzerinden aynı IP adresine gönderilir, ancak tarayıcı sunucuya ne eriştiğini bildirir.
Neden? Çünkü aynı IP adresine sahip web sunucuları birden fazla siteyi barındırabilir ve her biri için farklı sayfalar verebilir. Hangi sayfanın IP adresine göre kimin istediğini ayırt edemez, çünkü hepsinde de aynıdır - ancak bunları HTTP üstbilgisiyle ayırabilir.