คำขอ HTTP ที่เป็นปัญหานั้นไม่ถูกต้องเว้นแต่ว่าเบราว์เซอร์กำลังพูดถึงตัวกลาง (พร็อกซี)
ตัวอย่างของคุณจะมีลักษณะดังต่อไปนี้หากเบราว์เซอร์กำลังพูดคุยกับเว็บเซิร์ฟเวอร์โดยตรง:
GET /hello.htm HTTP/1.1
Host: www.pippo.it
ทีนี้เพื่อให้เข้าใจในมุมมองนี้ให้พิจารณาโมเดล OSI
เรามี 3 ระบบในการดำเนินการ:
- ลูกค้าเรียกใช้เบราว์เซอร์
- เว็บเซิร์ฟเวอร์ที่ให้บริการเว็บไซต์
- เซิร์ฟเวอร์ DNS ที่รู้ที่อยู่ IP ของเว็บไซต์
โปรโตคอลที่เกี่ยวข้องคือจากล่างขึ้นบน (ตั้งค่าขั้นต่ำที่เกี่ยวข้องเป็น OP):
การสื่อสาร HTTP นั้นทำผ่านโปรโตคอล TCP (TCP อยู่ด้านบนของโปรโตคอล IP) ในขณะที่การสื่อสาร DNS ในกรณีนี้จะทำผ่านโปรโตคอล UDP (UDP ยังอยู่ด้านบนของโปรโตคอล IP)
นี่คือลำดับการสื่อสารสั้น ๆ :
ลูกค้าวิ่งเบราว์เซอร์ถามDNS เซิร์ฟเวอร์สำหรับA
การบันทึกสำหรับwww.pippo.it
ใช้โปรโตคอล UDP
1.1 กับลูกค้าที่เป็นระบบปฏิบัติการที่ไม่เป็นส่วนหนึ่งของการแก้ปัญหาและการเจรจากลับไปเบราว์เซอร์เบราว์เซอร์ --- ไม่เคยพูดถึงเซิร์ฟเวอร์ DNS โดยตรงแทนที่จะผ่านระบบปฏิบัติการโดยเรียกgethostbyname ()หรือใหม่กว่าgetaddrinfo () บน Windows ลำดับที่ระบบปฏิบัติการแก้ไขที่อยู่มีแนวโน้มที่จะถูกกำหนดโดยบางสิ่งเช่นนี้ในขณะที่บน Linux ลำดับความสำคัญในการแก้ไขจะถูกกำหนดโดย/etc/nsswitch.conf
DNS เซิร์ฟเวอร์โดยใช้โปรโตคอล UDP, ตอบสนองต่อลูกค้าที่มีการบันทึก / ที่อยู่ IP ถ้ามันมีอยู่
ลูกค้าเปิดการเชื่อมต่อ TCP พอร์ต 80 ของเว็บเซิร์ฟเวอร์และเขียนข้อความต่อไปนี้:
คำขอ HTTP:
GET /hello.htm HTTP/1.1
Host: www.pippo.it
คุณสามารถเลียนแบบสิ่งเดียวกันโดยทำสิ่งนี้ในคอนโซลหรือพร้อมท์คำสั่งของคุณ:
> 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
ตามด้วยสองบรรทัดว่าง หากมีเนื้อหาที่ร้องขอเว็บเซิร์ฟเวอร์จะพิมพ์ลงบนหน้าจอ หากมีเบราว์เซอร์อยู่อีกด้านหนึ่งข้อความตอบกลับจะถูกแยกวิเคราะห์โดยเบราว์เซอร์และแท็กลิงก์สคริปต์และรูปภาพทั้งหมดจะแสดงในสิ่งที่เราเรียกว่าหน้าเว็บ
ในความเป็นจริงมีรายละเอียดเพิ่มเติมบางอย่างเช่นเบราว์เซอร์อาจแคชที่อยู่ IP หากคุณเข้าชมบางโดเมนแล้วดังนั้นการแก้ไข DNS จึงไม่จำเป็น นอกจากนี้เบราว์เซอร์สมัยใหม่อาจพยายามแก้ไขปัญหาก่อนที่คุณต้องการ ( การดึงข้อมูล DNS ล่วงหน้า ) เพื่อเร่งความเร็วในการเรียกดูของคุณ
นอกจากนี้คอมพิวเตอร์ของคุณอาจมีระเบียนคงที่ในhosts
ไฟล์ หากบันทึกตรงกับคำขอรายการคงที่ภายในเครื่องจะถูกนำมาใช้ก่อนและจะไม่มีการติดต่อกับเซิร์ฟเวอร์ DNS นี่คือการกำหนดค่าและไม่จำเป็นต้องเป็นจริง แต่มันเป็นค่าเริ่มต้นในระบบปฏิบัติการที่ฉันคุ้นเคย