ในการตอบคำถามของคุณเกี่ยวกับวิธีการใช้งานเบราว์เซอร์ของคุณจะส่งเซิร์ฟเวอร์
คุณถูกต้องว่าระบบจะแก้ไขเป็นที่อยู่ IP เสมอ แต่เบราว์เซอร์จะส่ง URL ที่คุณพยายามเข้าถึงในส่วนหัว HTTP
นี่คือส่วนหัวตัวอย่างที่ฉันพบออนไลน์ปรับเปลี่ยนให้ดูเหมือนกับว่าคุณใช้ Firefox บน Windows และพิมพ์apple.com
ลงในแถบที่อยู่:
GET / HTTP/1.1
Host: apple.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
นี่คือลักษณะที่ส่วนหัวหากคุณใช้ที่อยู่ IP:
GET / HTTP/1.1
Host: 17.142.160.59
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
ทั้งสองอย่างนี้จะถูกส่งไปยังที่อยู่ IP เดียวกันบนซ็อกเก็ต แต่เบราว์เซอร์จะบอกเซิร์ฟเวอร์ว่ามีการเข้าถึงอะไร
ทำไม? เนื่องจากเว็บเซิร์ฟเวอร์ที่มีที่อยู่ IP เดียวกันอาจโฮสต์เว็บไซต์หลายแห่งและมอบหน้าเว็บที่แตกต่างกันสำหรับแต่ละเว็บไซต์ มันไม่สามารถแยกแยะว่าใครต้องการหน้าไหนโดยที่อยู่ IP เพราะพวกเขาทุกคนมีเหมือนกัน - แต่มันสามารถแยกแยะได้ด้วยส่วนหัว HTTP