Chrome, kullanıcılar için sayfa yükleme sürelerini iyileştirmek amacıyla, kullanıcı bağlantıları tıklamadan önce Google Arama sonuçları sayfasındaki bağlantıları ve diğer katılımcı web sitelerindeki bağlantıları önceden getirebilir.
Bu özellik, kullanıcının IP adresini önceden getirilmesi gereken web sitesinden gizleyen bir CONNECT
proxy'ye dayanır. Bu durum, bağlantı oluşturma işlemini ağ yöneticilerinin görünümünün dışına taşır.
Aynı zamanda, ağ yöneticilerinin içerikleri filtrelemesi gerekebileceğinin de farkındayız. Bu nedenle, kullanıcı önceden getirilmiş bir bağlantıyı tıkladığında ağ yöneticilerinin bunu yapmaya devam edebileceği bir mekanizma tasarladık.
İçerik filtrelemesi
Chrome, kullanıcının gizliliğini korumak için bağlantıları önceden getirirken gözlemlenebilir DNS aramaları yapmaz. Kullanıcı, önceden getirilmiş bir bağlantıya giderse sayfa kaynakları, gözlemlenebilir bir DNS araması yapılmadan yerel önbellekten getirilir. Bunun bir yan etkisi, kullanıcı önceden getirilmiş bir bağlantıya gittiğinde içerik filtrelemenin amaçlandığı gibi çalışmamasıdır.
Ağ yöneticilerinin önceden getirilmiş bu gezinmelerdeki içerikleri filtrelemesine olanak tanımak için Chrome'a, kullanıcı önceden getirilmiş bir bağlantıyı tıkladığında DNS araması yapmasını söyleyen bir sinyal mekanizması tasarladık. Bu DNS araması, önceden getirme işlemi yapılmamış gibi aynı anda ve aynı şekilde gerçekleşir. Böylece yöneticiler, içeriği filtrelemek için aynı fırsata sahip olur. Chrome, bu ikinci DNS araması başarılı olana kadar önceden getirilmiş kaynakların önbellekten yüklenmesini duraklatır. Önceden getirme işlemi başarısız olursa Chrome, önceden getirilmiş kaynakları kullanmaz ve bunun yerine sayfayı normal şekilde yükler. Chrome'un DNS araması tamamlanana kadar beklemesi gerektiğinden bu durumun kullanıcı için performans cezasına yol açtığını unutmayın.
Sinyal mekanizmasının ayrıntıları
Sayfa önceden yüklemeyi devre dışı bırakmamış kullanıcılar için Chrome, Chrome başladığında veya bir ağ arayüzü değişikliği gerçekleştiğinde dns-tunnel-check.googlezip.net
için eşzamansız olarak bir DNS araması yapar.
dns-tunnel-check.googlezip.net
kontrolünün olası sonuçları şunlardır:
- Yanıt
NXDOMAIN
veyaSERVFAIL
ise ya daNOERROR
yanıt kodu döndürülür ancakA
veyaAAAA
kayıtlarını içermiyorsa Chrome, ağ yöneticilerinin önceden getirilmiş sayfalara yapılan gezinmeler hakkında görünürlüğe ihtiyacı olduğunu anlar (bkz. Uçuş öncesi modu). - Yanıt başka bir değerse Chrome, önceden getirilmiş kaynakları doğrudan kullanır ve kullanıcı önceden getirilmiş sayfaya gittiğinde ek DNS araması yapmaz.
Bu kontrolün sonucu, Chrome yeniden başlatılana veya ağ arayüzü değişene kadar geçerli olur. Bu durumda, dns-tunnel-check.googlezip.net
için yeni bir DNS araması tetiklenir ve sonuç farklı olabilir.
Uçuş öncesi modu
Bu modda Chrome, özel önceden getirme proxy'si aracılığıyla önceden getirilmiş bir sayfaya gitmeden önce ilgili alan için bir DNS araması yapar ve yanıt gelene kadar bekler:
- Yanıt, boş olmayan bir IP adresi kümesinden oluşuyorsa Chrome, önceden getirilmiş kaynakları kullanarak gezinmeye devam eder.
- Yanıt
REFUSED
(tercih edilen) veyaNXDOMAIN
ise Chrome gezinmeye devam etmez ve bunun yerine ilgili DNS hata sayfasını gösterir.