ใครสามารถบอกฉันได้ว่าเกิดอะไรขึ้นเบื้องหลังเบื้องหลังจากเวลาที่ฉันพิมพ์ URL ในเบราว์เซอร์จนถึงเวลาที่ฉันได้เห็นหน้าเว็บในเบราว์เซอร์ บัญชีรายละเอียดของกระบวนการจะเป็นประโยชน์อย่างมาก
ใครสามารถบอกฉันได้ว่าเกิดอะไรขึ้นเบื้องหลังเบื้องหลังจากเวลาที่ฉันพิมพ์ URL ในเบราว์เซอร์จนถึงเวลาที่ฉันได้เห็นหน้าเว็บในเบราว์เซอร์ บัญชีรายละเอียดของกระบวนการจะเป็นประโยชน์อย่างมาก
คำตอบ:
เรียนนี้เป็นอย่างมากหยาบและสมจริงสมจังร่างสมมติร้องขอ HTTP ที่เป็นไปได้ง่าย (ไม่ HTTPS ไม่มี HTTP2, ไม่มีแถม) DNS เป็นไปได้ง่ายผู้รับมอบฉันทะไม่มีเดียวกอง IPv4 หนึ่ง HTTP ขอเพียงเซิร์ฟเวอร์ HTTP ง่ายใน ส่วนอื่น ๆ และไม่มีปัญหาในขั้นตอนใด ๆ นี่คือสำหรับเจตนารมณ์และวัตถุประสงค์ร่วมสมัยส่วนใหญ่เป็นสถานการณ์ที่ไม่สมจริง สิ่งเหล่านี้มีความซับซ้อนมากขึ้นในการใช้งานจริงและกองเทคโนโลยีได้กลายเป็นลำดับความสำคัญที่ซับซ้อนมากขึ้นนับตั้งแต่มีการเขียน เมื่อคำนึงถึงเรื่องนี้ไทม์ไลน์ต่อไปนี้ยังคงใช้ได้:
อีกครั้งการอภิปรายของแต่ละจุดเหล่านี้ได้กรอกหน้านับไม่ถ้วน; ใช้เวลานี้เป็นเพียงบทสรุปย่อเพื่อประโยชน์ของความชัดเจน นอกจากนี้ยังมีสิ่งอื่น ๆ อีกมากมายที่เกิดขึ้นควบคู่ไปกับสิ่งนี้ (การประมวลผลที่อยู่ในการพิมพ์การดึงข้อมูลล่วงหน้าการเพิ่มหน้าประวัติเบราว์เซอร์แสดงความคืบหน้าต่อผู้ใช้แจ้งปลั๊กอินและส่วนขยายการแสดงผลหน้าเว็บขณะดาวน์โหลด การจัดการคุกกี้การตรวจสอบเนื้อหาที่เป็นอันตราย ฯลฯ ) และการดำเนินการทั้งหมดได้รับลำดับความซับซ้อนที่ซับซ้อนยิ่งขึ้นด้วย HTTPS (ใบรับรองและยันต์และการปักหมุดโอ้ฉัน!)
ก่อนอื่นคอมพิวเตอร์จะค้นหาโฮสต์ปลายทาง ถ้ามันมีอยู่ในแคช DNS ท้องถิ่นมันจะใช้ข้อมูลนั้น มิฉะนั้นการสืบค้น DNS จะดำเนินการจนกว่าจะพบที่อยู่ IP
จากนั้นเบราว์เซอร์ของคุณจะเปิดการเชื่อมต่อ TCP ไปยังโฮสต์ปลายทางและส่งคำขอตาม HTTP 1.1 (หรืออาจใช้ HTTP 1.0 แต่เบราว์เซอร์ปกติจะไม่ทำอะไรอีกแล้ว)
เซิร์ฟเวอร์ค้นหาทรัพยากรที่จำเป็น (ถ้ามี) และตอบสนองโดยใช้โปรโตคอล HTTP ส่งข้อมูลไปยังลูกค้า (= เบราว์เซอร์ของคุณ)
จากนั้นเบราว์เซอร์จะใช้ตัวแยกวิเคราะห์ HTML เพื่อสร้างโครงสร้างเอกสารใหม่ซึ่งจะแสดงให้คุณเห็นบนหน้าจอในภายหลัง หากพบการอ้างอิงถึงแหล่งข้อมูลภายนอกเช่นรูปภาพ, ไฟล์ css, ไฟล์ javascript สิ่งเหล่านี้จะถูกส่งแบบเดียวกับเอกสาร HTML
ค้นหาคุณสมบัติของ HTTP หรือหากต้องการเริ่มต้นให้ลองhttp://www.jmarshall.com/easy/http/