Tarayıcı bir aracıyla (proxy) konuşmadığı sürece söz konusu HTTP isteği aslında geçerli değildir.
Tarayıcı doğrudan bir web sunucusuyla konuşuyorsa örneğiniz biraz daha aşağıdaki gibi görünecektir:
GET /hello.htm HTTP/1.1
Host: www.pippo.it
Şimdi, bunu perspektife koymak için OSI modelini düşünün:
Hareket halinde 3 sistemimiz var:
- Tarayıcıyı çalıştıran bir istemci
- Siteye hizmet veren bir web sunucusu
- Sitenin IP adresini bilen bir DNS sunucusu
İlgili protokoller aşağıdan yukarıya (minimum ilgili OP'ye ayarlanmıştır):
HTTP iletişimi TCP protokolü üzerinden yapılır (TCP IP protokolünün üstündedir), bu durumda DNS iletişimi UDP protokolü üzerinden yapılır (UDP ayrıca IP protokolünün üstündedir).
Kısaca iletişim sırası:
İstemci , tarayıcısını çalıştıran, sorar DNS sunucusunu bir için A
için rekor www.pippo.it
UDP protokolünü kullanarak,.
1.1. İstemcide, çözümleme kısmını yapan ve tarayıcıyla tekrar konuşan işletim sistemidir --- tarayıcı, gethostbyname () veya daha yeni getaddrinfo () yöntemini çağırarak işletim sistemi aracılığıyla hiçbir zaman doğrudan DNS sunucusuyla konuşmaz . Windows'ta, OS adreslerini giderir sırası olasılıkla gibi bir şey ile tanımlanır bu Linux üzerinde çözme önceliği ile tanımlanır iken,/etc/nsswitch.conf
DNS sunucusu için, cevap vermekte UDP protokolünü kullanarak, istemci varsa, bir kayıt / IP adresiyle
İstemci limanında 80 TCP bağlantısı açar web sunucusu ve aşağıdaki metni yazar:
HTTP isteği:
GET /hello.htm HTTP/1.1
Host: www.pippo.it
Konsolunuzda veya komut isteminizde böyle bir şey yaparak aynı şeyi taklit edebilirsiniz:
> telnet www.pippo.it 80
Trying 195.128.235.49...
Connected to www.pippo.it.
Escape character is '^]'.
GET /hello.htm HTTP/1.1
Host: www.pippo.it
ardından iki boş satır. İstenen içerik varsa, web sunucusu bunu ekranda yazdırır. Diğer tarafta bir tarayıcı varsa, yanıt metni tarayıcı tarafından ayrıştırılır ve tüm etiketler, bağlantılar, komut dosyaları ve resimler web sayfası dediğimiz şeyde oluşturulur.
Gerçekte bazı ayrıntılar daha vardır, örneğin tarayıcılar zaten bir etki alanını ziyaret ettiyseniz IP adreslerini önbelleğe alabilir, böylece DNS çözümlemesi gereksiz hale gelir. Ayrıca, modern tarayıcılar, tarama işleminizi hızlandırmak için gerçekten ihtiyacınız olmadan ( DNS önceden getirme ) çözümlemeyi yapmaya çalışabilir .
Ayrıca, bilgisayarınızda bir hosts
dosyada statik kayıtlar olabilir . Bir kayıt istekle eşleşirse, önce yerel statik giriş kullanılır ve hiçbir DNS sunucusuyla bağlantı kurulmaz. Bu yapılandırılabilir ve her zaman doğru olmayabilir, ancak aşina olduğum işletim sistemlerinde varsayılan değerdir.