เว็บเซิร์ฟเวอร์ไม่ได้ส่ง "เว็บไซต์ทั้งหมด" แต่เป็นเอกสารที่เบราว์เซอร์ร้องขอ
ตัวอย่างเช่นเมื่อคุณเข้าถึงhttps://www.google.com/เบราว์เซอร์ queries https://www.google.com/
เซิร์ฟเวอร์สำหรับเอกสารที่ เซิร์ฟเวอร์ดำเนินการตามคำขอและส่งกลับโค้ด HTML บางส่วน
จากนั้นเบราว์เซอร์จะตรวจสอบสิ่งที่เซิร์ฟเวอร์ส่ง ในกรณีนี้คือเว็บเพจ HTML ดังนั้นจึงแยกวิเคราะห์เอกสารและค้นหาสคริปต์ที่อ้างอิงสไตล์ชีตรูปภาพแบบอักษรและอื่น ๆ
ในขั้นตอนนี้เบราว์เซอร์ดาวน์โหลดเอกสารดังกล่าวเสร็จแล้ว แต่ยังไม่ได้ดาวน์โหลดเอกสารอ้างอิง มันสามารถเลือกที่จะทำเช่นนั้นหรือข้ามพวกเขา เบราว์เซอร์ปกติจะพยายามดาวน์โหลดเอกสารที่อ้างอิงทั้งหมดเพื่อประสบการณ์การรับชมที่ดีที่สุด หากคุณมีตัวบล็อคโฆษณา (เช่น Adblock) หรือปลั๊กอินความเป็นส่วนตัว (Ghostery, NoScript) ก็อาจบล็อกทรัพยากรบางอย่างเช่นกัน
จากนั้นเบราว์เซอร์จะดาวน์โหลดเอกสารอ้างอิงแบบหนึ่งต่อหนึ่งในแต่ละครั้งที่ขอให้เซิร์ฟเวอร์ระบุแหล่งที่มาอย่างชัดเจน ในตัวอย่าง Google ของเราเบราว์เซอร์จะค้นหาข้อมูลอ้างอิงต่อไปนี้เพียงเพื่อตั้งชื่อไม่กี่คน:
(ไฟล์จริงอาจแตกต่างกันสำหรับผู้ใช้เบราว์เซอร์และเซสชันที่แตกต่างกันและอาจเปลี่ยนแปลงตลอดเวลา)
เบราว์เซอร์ที่ใช้ข้อความจะไม่ดาวน์โหลดรูปภาพไฟล์ Flash วิดีโอ HTML5 และอื่น ๆ ดังนั้นพวกเขาจึงดาวน์โหลดข้อมูลน้อยลง
@NathanOsman ให้ความคิดเห็นที่ดี: บางครั้งรูปภาพขนาดเล็กจะถูกฝังลงในเอกสาร HTML โดยตรงและในกรณีเหล่านั้นไม่สามารถหลีกเลี่ยงการดาวน์โหลดได้ นี่เป็นอีกวิธีหนึ่งที่ใช้เพื่อลดจำนวนคำขอ พวกเขามีขนาดเล็กมากมิฉะนั้นค่าใช้จ่ายในการเข้ารหัสไฟล์ไบนารีใน base64 นั้นใหญ่เกินไป มีภาพดังกล่าวไม่กี่ภาพบน Google.com: ( ขนาดเข้ารหัส base64 / ขนาดถอดรหัส )
- ไอคอนแป้นพิมพ์ขนาด 19 × 11 (106 B / 76 B)
- ไอคอนไมโครโฟน 28 × 38 (334 B / 248 B)
- 1 × 1 px โปร่งใส GIF (62 B / 43 B) ซึ่งแสดงในแท็บทรัพยากร Chrome Dev Tools แต่ฉันไม่พบในแหล่งที่มา - อาจเพิ่มในภายหลังด้วย JavaScript
- ไฟล์ GIF เสียหาย 1 × 1 px ที่ปรากฏสองครั้ง (34 B / 23 B) จุดประสงค์ของมันคือความลึกลับสำหรับฉัน