संभव डुप्लिकेट:
HTTP_HOST vs. SERVER_NAME
$_SERVER['HTTP_HOST']
और $_SERVER['SERVER_NAME']
बीच क्या अंतर है ??
संभव डुप्लिकेट:
HTTP_HOST vs. SERVER_NAME
$_SERVER['HTTP_HOST']
और $_SERVER['SERVER_NAME']
बीच क्या अंतर है ??
$_SERVER['SERVER_NAME']
के रूप में (अपाचे अपाचे .conf फ़ाइल के लिए यानी) मेजबान विन्यास में परिभाषित किया गया सर्वर नाम के मूल्य देता है।
$_SERVER['HTTP_HOST']
आपको वह डोमेन नाम देता है जिसके माध्यम से वर्तमान अनुरोध पूरा हो रहा है और अनुरोध से अधिक सीधे संबंधित है।
HTTP_HOST
आमतौर पर अधिकतर अनुप्रयोगों में अधिक उपयोगी होता है, जिसमें यह सीधे अनुरोध से संबंधित है, जबकि SERVER_NAME
conf फ़ाइल में जो भी मूल्य वापस कर सकता है और अनुरोध के बारे में आपको कुछ भी नहीं बताता है।
मैं आपको एक उदाहरण दूंगा कि HTTP_HOST
SERVER_NAME
से भिन्न हो सकता है। मान लें कि आपके पास अपाचे में domain.com
के सर्वर नाम के साथ एक होस्ट है और 1.2.3.4
का आईपी पता है।
के दो भेजे अनुरोध यूआरएल पर नजर डालते हैं और इन चर के बीच अंतर दिखाने:,
http://www.domain.com
HTTP_HOST = www.domain.com
SERVER_NAME = domain.com
http://1.2.3.4
HTTP_HOST = 1.2.3.4
SERVER_NAME = domain.com
तो फिर, HTTP_HOST अनुरोध करने के लिए अधिक से जुड़ा हुआ है, जबकि SERVER_NAME सर्वर विन्यास से निर्धारित होता है।
HTTP_HOST
ग्राहक द्वारा भेजे गए Host:
शीर्षलेख है। नतीजतन, यह थोड़ा कम भरोसेमंद हो सकता है। उपयोगकर्ता इनपुट के बावजूद SERVER_NAME
आपके सर्वर की कॉन्फ़िगरेशन
द्वारा निर्धारित किया गया है।
व्यवहार में अंतर सूक्ष्म है। कुछ अच्छे उदाहरण यहां प्रदर्शन कर रहे हैं: http://shiflett.org/blog/2006/mar/server-name-versus-http-host
'SERVER_NAME' सर्वर होस्ट जिसके तहत वर्तमान स्क्रिप्ट पर कार्य कर रहा है का नाम है। यदि वर्चुअल होस्ट पर स्क्रिप्ट चल रही है, तो यह उस वर्चुअल होस्ट के लिए परिभाषित मान होगा।
'HTTP_HOST' होस्ट की सामग्री: वर्तमान अनुरोध से शीर्षलेख, यदि कोई है तो। होस्ट की
आपका निष्कर्ष गलत है। 'SERVER_NAME' आपके सर्वर की कॉन्फ़िगरेशन द्वारा निर्धारित किया गया है, और [उपयोगकर्ता * इनपुट पर निर्भर करता है (वास्तव में * यह * डिफ़ॉल्ट व्यवहार है)] (http://stackoverflow.com/a/28889208/632951)। – Pacerier
HTTP_HOST बनाम SERVER_NAME के subtleties का एक अच्छा उदाहरण यहां प्रदर्शित किया गया है: http://shiflett.org/blog/2006/mar/server-name-versus-http-host –
हां यह http: // stackoverflow से वही है .com/a/1459794/632951। 'SERVER_NAME' सर्वर की कॉन्फ़िगरेशन द्वारा निर्धारित किया जाता है, और उपयोगकर्ता इनपुट पर निर्भर करने के लिए बनाया जा सकता है। – Pacerier
HTTP_HOST
सामग्री: वर्तमान अनुरोध से हैडर, अगर वहाँ एक है।
SERVER_NAME
सर्वर होस्ट जिसके तहत वर्तमान स्क्रिप्ट पर कार्य कर रहा है का नाम है। यदि वर्चुअल होस्ट पर स्क्रिप्ट चल रही है, तो यह उस वर्चुअल होस्ट के लिए परिभाषित मान होगा।
बेशक आउटपुट समान नहीं है ........ – Pacerier
$ _SERVER ['HTTP_HOST'] "आपको डोमेन नाम देता है जिसके माध्यम से वर्तमान अनुरोध पूरा हो रहा है और यह अनुरोध से अधिक संबंधित है।" +1 धन्यवाद !!!! और आधिकारिक दस्तावेज़ से जुड़े लोगों के लिए धन्यवाद, लेकिन मेरे लिए बहुत जटिल;) – Eman
@ माइक, यह केवल 'SERVER_NAME' नहीं है जो सर्वर कॉन्फ़िगरेशन पर निर्भर करता है। ['HTTP_HOST' भी इस पर निर्भर करता है।] (Http://stackoverflow.com/a/28889208/632951) – Pacerier