Web sunucusu "web sitesinin tamamını" göndermez, ancak tarayıcıların istediği belgeleri gönderir.
Örneğin, https://www.google.com/ adresine eriştiğinizde tarayıcı belge için sunucuyu sorgular https://www.google.com/
. Sunucu isteği işler ve bazı HTML kodlarını geri gönderir.
Ardından tarayıcı sunucunun ne gönderdiğini kontrol eder. Bu durumda HTML web sayfasıdır, bu nedenle dokümanı ayrıştırır ve başvurulan komut dosyalarını, stil sayfalarını, görüntüleri, yazı tiplerini vb. Arar.
Bu aşamada tarayıcı bu belgeyi indirmeyi tamamladı, ancak yine de başvurulan belgeleri indirmedi. Bunu yapmayı veya atlamayı seçebilir. Düzenli tarayıcılar, en iyi görüntüleme deneyimi için referans verilen tüm belgeleri indirmeye çalışacaktır. Bir reklam engelleyiciniz (Adblock gibi) veya gizlilik eklentiniz varsa (Ghostery, NoScript), bazı kaynakları da engelleyebilir.
Ardından tarayıcı referans belgelerini tek tek indirir, her defasında sunucudan açıkça tek bir kaynak ister. Google örneğimizde tarayıcı, sadece birkaç tanesini isimlendirmek için aşağıdaki referansları bulacaktır:
(gerçek dosyalar farklı kullanıcılar, tarayıcılar ve oturumlar için farklı olabilir ve zamanla değişebilir)
Metin tabanlı tarayıcılar görüntüleri, Flash dosyalarını, HTML5 video vb.
@NathanOsman yorumlarda iyi bir noktaya işaret ediyor: Bazen küçük resimler doğrudan HTML belgelerine gömülebilir ve bu durumlarda bunları indirmekten kaçınılmaz. Bu istek sayısını azaltmak için kullanılan başka bir püf noktasıdır. Ancak bunlar çok küçüktür, aksi takdirde base64'teki ikili dosyanın kodlanmasının ek yükü çok büyüktür. Google.com’da bu kadar az resim var: ( base64 kodlanmış boyut / kod çözülmüş boyut )
- 19 × 11 klavye simgesi (106 B / 76 B)
- 28 × 38 mikrofon simgesi (334 B / 248 B)
- Chrome Geliştirme Araçları Kaynakları sekmesinde görünen 1 × 1 piksel saydam GIF (62 B / 43 B) , ancak kaynakta bulamadım - muhtemelen JavaScript ile eklenmiş
- 1 × 1 px bozuk iki kez görünen GIF dosyası (34 B / 23 B). Amacı benim için bir gizemdir.