host
हैडर वेबसर्वर जो बताता है आभासी मेजबान का उपयोग करने (यदि सेट)। आप कई उपनामों (= डोमेन और वाइल्डकार्ड-डोमेन) का उपयोग करके एक ही वर्चुअल होस्ट भी कर सकते हैं । इस मामले में, आपके पास अभी भी अपने वेब ऐप में उस हेडर को मैन्युअल रूप से पढ़ने की संभावना है यदि आप अलग-अलग डोमेन के आधार पर अलग-अलग व्यवहार प्रदान करना चाहते हैं। यह संभव है क्योंकि आपके वेबसर्वर में आप कर सकते हैं (और अगर मैं गलत नहीं हूँ तो आपको) डिफ़ॉल्ट होस्ट होने के लिए एक vhost सेट करना होगा । जब भी host
हेडर किसी भी कॉन्फ़िगर किए गए वर्चुअल होस्ट से मेल नहीं खाता है , तो इस डिफ़ॉल्ट vhost का उपयोग किया जाता है।
इसका मतलब है: आप इसे सही पाते हैं, हालांकि "एकाधिक होस्ट" कहना कुछ भ्रामक हो सकता है: मेजबान (संबोधित मशीन) एक ही है, जो वास्तव में आईपी पते पर हल हो जाता है वे अलग-अलग डोमेन नाम (उप डोमेन सहित) हैं जो भी संदर्भित हैं के रूप में होस्ट नामों (लेकिन मेजबान!)।
हालांकि सवाल का हिस्सा नहीं है, एक मजेदार तथ्य: इस विनिर्देश ने शुरुआती दिनों में एसएसएल के साथ समस्याओं को जन्म दिया क्योंकि वेब सर्वर को उस प्रमाणपत्र को वितरित करना होगा जो क्लाइंट द्वारा संबोधित डोमेन से मेल खाता है। हालाँकि, यह जानने के लिए कि किस प्रमाणपत्र का उपयोग करना है, वेबसर्वर को पहले से पता किया हुआ होस्टनाम पता होना चाहिए। लेकिन क्योंकि क्लाइंट उस जानकारी को केवल एन्क्रिप्ट किए गए चैनल पर भेजता है (जिसका अर्थ है: प्रमाणपत्र पहले ही भेजे जाने के बाद), सर्वर को यह मान लेना था कि आपने डिफ़ॉल्ट होस्ट को ब्राउज कर लिया है। इसका मतलब प्रति आईपी एड्रेस / पोर्ट-कॉम्बिनेशन में एक ssl-सुरक्षित डोमेन है।
यह सर्वर नाम संकेत के साथ दूर किया गया है ; हालाँकि, वह फिर से कुछ गोपनीयता तोड़ता है, क्योंकि सर्वर का नाम अब फिर से सादे पाठ में स्थानांतरित किया गया है, इसलिए हर आदमी को बीच में दिखाई देगा कि आप किस होस्टनाम से जुड़ने की कोशिश कर रहे हैं।
हालाँकि वेबसर्वर होस्टनाम को सर्वर नेम इंडिकेशन से जानता होगा, host
हेडर अप्रचलित नहीं है, क्योंकि सर्वर नेम इंडिकेशन जानकारी केवल TLS हैंडशेक के भीतर उपयोग की जाती है। असुरक्षित कनेक्शन के साथ, सर्वर नाम संकेत बिल्कुल नहीं है, इसलिए host
हेडर अभी भी वैध है (और आवश्यक है)।
एक और मज़ेदार तथ्य: अधिकांश वेबसर्वर्स (यदि सभी नहीं हैं) आपके http-रिक्वेस्ट को अस्वीकार कर देते हैं, अगर इसमें बिल्कुल एक host
हेडर नहीं है, भले ही इसे छोड़ा जा सकता हो क्योंकि केवल डिफ़ॉल्ट vhost कॉन्फ़िगर है। इसका मतलब है कि कम से कम एक http- (मिल-) अनुरोध में जानकारी की आवश्यकता पहले से युक्त लाइन है METHOD
RESOURCE
और PROTOCOL VERSION
और कम से कम host
-header, इस तरह:
GET /someresource.html HTTP/1.1
Host: www.example.com
में होस्ट-हैडर पर MDN दस्तावेज़ीकरण वे वास्तव में इसे इस तरह वाक्यांश:
होस्ट हैडर फ़ील्ड को सभी HTTP / 1.1 अनुरोध संदेशों में भेजा जाना चाहिए। 400 (खराब अनुरोध) स्थिति कोड किसी भी HTTP / 1.1 अनुरोध संदेश पर भेजा जाएगा जिसमें होस्ट हेडर फ़ील्ड का अभाव है या जिसमें एक से अधिक हैं।
जैसा कि डारेल मिलर ने उल्लेख किया है, पूरा चश्मा RFC7230 में पाया जा सकता है ।
vhost
केvirtual host
साथ केवल 3 नज़दीकी घटनाएं नहीं मिलीं और 12default
पोर्ट के बारे में ज्यादातर के लिए ,