เพื่อให้เข้าใจถึงสิ่งที่เกิดขึ้นคุณจำเป็นต้องรู้เกี่ยวกับ DNS เล็กน้อย
เมื่อไคลเอนต์ต้องการเชื่อมต่อกับบริการบนโฮสต์ที่กำหนดจะค้นหาชื่อโฮสต์ผ่านโครงสร้างพื้นฐาน DNS ภายในเครื่องและรับที่อยู่ IP ในการตอบสนอง จากนั้นจะเชื่อมต่อกับที่อยู่ IP นั้นและร้องขอบริการในลักษณะที่กำหนดโดย procotol ที่สร้างขึ้นเพื่อนำไปใช้งาน
ในบางกรณีส่วนหนึ่งของ procotol นั้นเกี่ยวข้องกับการส่งชื่อโฮสต์ครั้งที่สองซึ่ง แต่เดิมค้นหาซึ่งในกรณีนี้ถูกส่งไปยังเซิร์ฟเวอร์มากกว่าโครงสร้างพื้นฐาน DNS ในกรณีของ HTTP สิ่งนี้ถูกเพิ่มเข้ามาเป็นส่วนหนึ่งของ HTTP / 1.1 ในRFC 2616 ; ในกรณีของ HTTPS สิ่งนี้ถูกนำไปใช้เป็นServer Name Indication (SNI) ในRFC 4366 ; และในกรณีของ FTP สิ่งนี้จะถูกเพิ่มโดยHOST
คำสั่งในRFC 7151 (แต่ดูคำเตือนในภายหลัง) หากการส่งครั้งที่สองดังกล่าวไม่เกิดขึ้นเซิร์ฟเวอร์จะไม่มีทางรู้ว่าชื่อโฮสต์ใดที่ไคลเอ็นต์ป้อนไปยัง DNS ในเครื่องเพื่อรับที่อยู่ IP ของเซิร์ฟเวอร์
โปรดทราบว่าในทุกกรณีจำเป็นต้องมีการเปลี่ยนแปลงโปรโตคอลเพื่อทำการส่งในครั้งที่สองนี้และทำให้ชื่อเซิร์ฟเวอร์การตอบโต้การโต้ตอบของไคลเอ็นต์กับเซิร์ฟเวอร์ หลังจากเปลี่ยนโพรโทคอลแล้วต้องมีการอัปเดตรหัสเซิร์ฟเวอร์เพื่อใช้งาน และในที่สุดลูกค้าจะต้องได้รับการปรับปรุงเพื่อพูดคุยโปรโตคอลใหม่กับเซิร์ฟเวอร์ ขั้นตอนสุดท้ายนั้นอาจช้าเป็นพิเศษ ในกรณีของ SNI นั้น Internet Explorer บน Windows XP ไม่เคยดำเนินการดังนั้นจึงไม่สามารถใช้โปรโตคอลได้ในขณะที่ยังมีผู้ใช้ IE-on-XP จำนวนมากอยู่และใช้เวลาประมาณสิบปีพอที่จะใช้ ปิดและ / หรือรับการอัพเกรดที่ SNI สามารถใช้งานได้อย่างน่าเชื่อถือ
ดังนั้นนี่คือสิ่งที่จะทำให้ชื่อโฮสต์ของโปรโตคอลที่ไม่ทราบชื่อโฮสต์ทราบ มันไม่ใช่การตั้งค่าการตั้งค่าสถานะง่าย ๆ หรือการเปลี่ยนแปลงการกำหนดค่า เรามีคำตอบเฉพาะโปรโตคอลที่จัดการกับสถานะของกิจการและมาตรการบรรเทาผลกระทบที่เป็นไปได้สำหรับโปรโตคอลนั้นโดยเฉพาะ: สำหรับ
SSH (และเช่น SFTP) และ
FTP (ซึ่งชี้ให้เห็นว่าHOST
การสนับสนุน FTP ในปัจจุบันอยู่ในหย่อม - สนับสนุนเฟสและดังนั้นจึงยังไม่สามารถพึ่งพาได้)
คำตอบสั้น ๆ คือถ้าโปรโตคอลของคุณไม่ได้ใช้ชื่อโฮสต์ - การรับรู้ด้วยการสนับสนุนที่ดีในหมู่ลูกค้าและเซิร์ฟเวอร์ลืมมัน: มันไม่ใช่สิ่งที่คุณสามารถทำได้