इसी डोमेन नाम के बजाय एक IP पता टाइप करना वेबसाइट को क्यों नहीं दिखाता है? [बन्द है]


38
> host example.com
example.com has address 93.184.216.34
example.com has IPv6 address 2606:2800:220:1:248:1893:25c8:1946

मैं क्रोम के 93.184.216.34बजाय टाइप करता हूं http://example.com। यह वेबसाइट को लोड नहीं करता है। क्यूं कर?


अंगूठे के एक नियम के रूप में, मनुष्यों को कभी भी आईपी पते का उपयोग नहीं करना चाहिए, जब तक कि एक वास्तविक सर्वर को कॉन्फ़िगर न करें।
डेविड रिचेर्बी

वर्थ पर बल है कि आप किया सर्वर से प्रतिक्रिया मिलती है: 404 HTTP प्रतिक्रिया। इसका मतलब यह है कि यह सफलतापूर्वक होस्ट (दूसरी तरफ कंप्यूटर) और कुछ वेब सर्वर (मैं लिनक्स पर चलने वाले कुछ खुले स्रोत की तरह अनुमान लगाता हूं, जैसे कि नग्नेक्स) उस होस्ट पर चल रहे डेटा को वापस भेज दिया।
jpmc26

जवाबों:


107

क्योंकि वास्तव में उचित Hostसाइट को प्राप्त करने के लिए उचित HTTP हेडर की आवश्यकता होती है।

एक ही आईपी पते पर कई वेब साइटों को होस्ट करना और Hostक्लाइंट द्वारा निर्दिष्ट HTTP हेडर (साथ ही टीएलएस एसएनआई मान एचटीपीएस के मामले में आजकल) के बीच अंतर करना बहुत आम है ।

यही है, जब आपने http://example.comअपने ब्राउज़र में प्रवेश किया Hostथा तो हेडर था example.com, लेकिन जब आप प्रवेश करते हैं तो ऐसा नहीं होता है 93.184.216.34। आप दोनों मामलों में एक ही वेब सर्वर तक पहुंचते हैं, लेकिन आपको अलग-अलग प्रतिक्रियाएं मिलती हैं (इस विशेष मामले में 200 बनाम 404)।


4
क्या कोई इस Hostबात पर थोड़ा विस्तार कर सकता है कि वेब सर्वर आमतौर पर इसका क्या उपयोग करते हैं? ऑनलाइन खोजना बहुत कठिन है क्योंकि यह शब्द बहुत अधिक है।
user1717828

1
tools.ietf.org/html/rfc7230#section-5.4 एक http सर्वर एक होस्ट हेडर को संसाधित करता है, हालाँकि यह चाहता है। उदाहरण के लिए httpd में VirtualHost कॉन्फ़िगरेशन निर्देश हैं।
जॉन महोवाल्ड

19
@SergiyKolodyazhnyy ज़रूर आप curl -H "Host: example.com" http://93.184.216.34/या ऐसा कुछ कर सकते हैं ।
हाकिन लिंडक्विस्ट

13
Paraphrase के लिए - "वेबसाइटों और आईपी पते के लिए URL के बीच एक-से-एक संबंध नहीं है।"
पीट

1
वास्तव में उस विशेष सर्वर (93.184.216.34 2606: 2800: 220: 1: 248: 1893: 25c8: 1946) कम से कम example.com example.net example.org example.edu एक ही पते (तों) पर संभालता है , यही कारण है कि इसे वास्तव में होस्ट हेडर में नाम की आवश्यकता है।
dave_thompson_085

14

क्योंकि आमतौर पर वेब सर्वर "वर्चुअल सर्वर" तकनीक का उपयोग करते हैं और आपके HTTP अनुरोध पर आपके द्वारा अनुरोधित डोमेन नाम के भीतर उत्तर देने में सक्षम होते हैं, लेकिन वेब सर्वर के आईपी पते पर नहीं। एक आईपी पते पर एक से अधिक डोमेन नाम छिपाने के लिए धन्यवाद।

उदाहरण के लिए, अपाचे वेब सर्वर आपके HTTP अनुरोध का जवाब अनुभाग का उपयोग करके आईपी पते के साथ दे सकता है:

<VirtualHost *:80>
ServerName Default
...
</VirtualHost>

या यदि कोई VirtualHost विन्यास में प्रयोग नहीं किया जाता है।

Apache में VirtualHost फीचर 1996 में पेश किया गया था।


10

में अपाचे , आप कई वेबसाइटों के लिए सिर्फ एक ही आईपी पते का उपयोग कर होस्ट कर सकते हैं। इसे वर्चुअल होस्टिंग कहा जाता है। यह है कि उप-डोमेन कैसे बनाए जा सकते हैं, यहां तक ​​कि स्टैंडअलोन डोमेन भी। यह प्रत्येक डोमेन / उपडोमेन के लिए VirtualHost निर्देशों से युक्त अपाचे विन्यास फाइल स्थापित करके किया जाता है।

एक उदाहरण HTTP सर्वर जिसमें दो वर्चुअल होस्ट हैं, example1.com और example2.com इस तरह दिख सकते हैं (IP पता परिभाषा):

<VirtualHost 93.184.216.34:80>
  ServerName example1.com
  ServerAlias www.example1.com
  DocumentRoot /var/www/example1.com
</VirtualHost>

<VirtualHost 93.184.216.34:80>
  ServerName example2.com
  ServerAlias www.example2.com
  DocumentRoot /var/www/example2.com
</VirtualHost>

यह इस तरह भी दिख सकता है (नाम-आधारित परिभाषा):

<VirtualHost *:80>
  ServerName example1.com
  ServerAlias www.example1.com
  DocumentRoot /var/www/example1.com
</VirtualHost>

<VirtualHost *:80>
  ServerName example2.com
  ServerAlias www.example2.com
  DocumentRoot /var/www/example2.com
</VirtualHost>

दोनों मामलों में, दो वर्चुअल होस्ट रिकॉर्ड आंतरिक रूप से मेमोरी में बनाए जाते हैं और अपाचे द्वारा यूआरआई अनुरोध आने पर तुलना करने के लिए उपयोग किया जाता है।

जब कोई उपयोगकर्ता एजेंट के माध्यम से आईपी पते में टाइप करता है, तो कॉन्फ़िगरेशन फ़ाइल में सूचीबद्ध पहला वर्चुअल होस्ट प्राथमिक डोमेन (यानी इस मामले में example1.com) के रूप में उपयोग किया जाता है।

जब कोई उपयोगकर्ता एक डोमेन नाम में टाइप करता है, तो अनुरोध एक सार्वजनिक इंटरनेट डीएनएस नेटवर्क (आईसीएएनएन) को भेजा जाता है जो इससे जुड़ा आईपी पता प्रदान करता है। आपने एक ICANN रजिस्ट्रार (जैसे GoDaddy) के माध्यम से दोनों को पंजीकृत किया। आईसीएएनएन नेटवर्क पर सभी DNS सर्वरों के प्रसार के लिए कुछ समय देने के लिए आपके पास ये दोनों सही होने चाहिए। इन दिनों इसमें 24 घंटे तक लग सकते हैं।

जब अनुरोध आपके अपाचे HTTP सर्वर पर रूट किया जाता है, तो आंतरिक वर्चुअलहॉस्ट रिकॉर्ड की सूची के खिलाफ आईपी पते और डोमेन नाम का मिलान किया जाता है। जब एक पाया जाता है, तो उपयोगकर्ता रूट पर वापस जाने के लिए ऑब्जेक्ट संसाधन के लिए पूर्ण फाइलसिस्टम पथ बनाने के लिए दस्तावेज़ रूट का उपयोग किया जाता है। यदि नहीं, तो HTTP 404 को इसके साथ जुड़े किसी भी त्रुटि दस्तावेज़ के साथ भेजा जाता है।


8

मुझे "घर" शब्दावली का उपयोग करना पसंद है।

आप आसानी से उस पर एक नाम के बिना एक घर को एक पत्र भेज सकते हैं और यह घर पर आ जाएगा।

यदि आप उस व्यक्ति का नाम उस पर डालते हैं तो आप इच्छित प्राप्तकर्ता को भेज रहे हैं।

गंतव्य समान है लेकिन जब यह घर तक पहुंचता है तो इसे कैसे अलग किया जाता है।

जब आप साइट को निर्दिष्ट करते हैं, अर्थात www.example.com तो सर्वर को पता होता है कि अनुरोध को कैसे संभालना है और कौन सा होस्ट करना है और किस साइट पर वापस सेवा करना है।


यह एक सहायक रूपक है!
Redwolf कार्यक्रम

+1 मुझे प्राप्तकर्ता नाम का विचार पसंद है। मैं एक समान सादृश्य के बारे में सोच रहा था, लेकिन आईपी पते के साथ भौतिक भवन (कंप्यूटर) की पहचान कर रहा था, लेकिन अपार्टमेंट नंबर (डोमेन नाम) बहु-किराए की इमारतों में वास्तविक प्राप्तकर्ता की पहचान कर रहा था। बेशक, यह एक अति सरलीकरण है और बहु-किराए वाले कंप्यूटरों में आईपी केवल एड्रेस सर्वर एक डिफ़ॉल्ट साइट हो सकता है, लेकिन मुझे लगता है कि यह एक अच्छा सादृश्य है।
jmbertucci

0

खोज के लिए महत्वपूर्ण शब्द "नाम आधारित आभासी होस्टिंग" है।

लोग एक ही वेब सर्वर पर कई होस्टनाम आवंटित करना चाहते हैं और प्रत्येक होस्टनाम के लिए अलग-अलग सामग्री परोसते हैं। इसे वर्चुअल होस्टिंग के रूप में जाना जाता है (वर्चुअल मशीनों की अधिक हालिया अवधारणा के साथ भ्रमित नहीं होना चाहिए)।

प्रारंभ में वर्चुअल होस्टिंग सर्वर को कई आईपी पते आवंटित करके किया जाता था, तब गंभीर उपयोग किए गए आईपी पते के आधार पर अलग-अलग सामग्री भेज सकता था, लेकिन इसे बेकार के रूप में देखा जाता था।

इसलिए "होस्ट" हेडर शुरू किया गया था, शुरू में एक एक्सटेंशन के रूप में लेकिन फिर बाद में 1997 में http 1.1 विनिर्देशन का एक अनिवार्य हिस्सा बना। यह हेडर क्लाइंट द्वारा मांगे गए होस्टनाम को निर्दिष्ट करता है। सर्वर तब हेडर के मूल्य के आधार पर विभिन्न सामग्रियों की सेवा कर सकता है।


"लेकिन इसे व्यर्थ के रूप में देखा गया।" केवल विरासत v4 कनेक्शन के लिए। यह अब प्रत्येक वर्चुअल होस्ट को एक अलग v6 पते पर स्थापित करने के लिए काफी संभव है।
क्वर्टी

1
हम अभी भी उस बिंदु से बहुत दूर हैं, जहां आपकी सार्वजनिक-सामना करने वाली सेवाओं को आईपीवी 6 बनाना केवल एक उचित काम है।
पीटर ग्रीन

0

वेब सर्वर के लिए लागत कम रखने के लिए, बहुत सारे वेब सर्वर कई वेबसाइटों की मेजबानी करते हैं। वे Apache2 / nginx / etc में वर्चुअल होस्ट या Vhosts का उपयोग करके ऐसा करते हैं। इसलिए यदि आप वेबसाइट के आईपी पते पर सीधे जाते हैं, तो आपको सबसे अधिक संभावना है कि "अपाचे काम कर रहा है" स्क्रीन मिलेगी, या संभवतः वेब सर्वर की मुख्य वेबसाइट पर पुनर्निर्देशित भी हो सकती है।

एक Vhost आने वाली वेबसाइट के पते को देखता है और इसे ServerName या ServerAlias ​​नामों से सक्षम Vhosts फ़ाइलों में तुलना करता है। यदि उनमें से एक मेल खाता है, तो वह विशिष्ट वेबसाइट लोड हो जाती है।

जब तक वेबसाइट पर बड़े पैमाने पर लोड (अद्वितीय आगंतुकों / पृष्ठ विचारों की उच्च संख्या) या उच्च लोड एप्लिकेशन (सोचें कि youtube.com, फेसबुक, आदि) हैं, तब तक साझा सर्वर पर काम करना अधिक लागत प्रभावी है। यह केवल एक Wordpress ब्लॉग वेबसाइट को चलाने के लिए अपने आप को एक समर्पित सर्वर ($ 60 / mo से शुरू) पाने के लिए पैसे की बर्बादी होगी। आप एक सर्वर पर संभवत: 200+ वेबसाइटों के साथ एक सर्वर पर एक साझा मंच प्राप्त करना बेहतर समझते हैं। $ 5 / मो के क्षेत्र में लागत अधिक होगी।

ऐसा करने का एक अन्य कारण आईपी पते की कमी है। बस पर्याप्त IPv4 पते शेष नहीं हैं। यह केवल नेट / होम / व्यावसायिक नेटवर्क के उपयोग और Vhosts के उपयोग के माध्यम से है जो हमारे पास बिल्कुल भी शेष है। यहां तक ​​कि जब IPv6 मुख्य धारा बन जाता है, तो सर्वर संभवतः Vhosts (सर्वर लागत) से चिपके रहेंगे।


0

एक समर्पित आईपी पता महंगा है, जबकि एक सर्वर पर एक नई वेबसाइट बनाना मूल रूप से मुफ्त है।

क्या होता है कि होस्टिंग कंपनी एक एकल आईपी पते को किराए पर देती है जो एक भौतिक सर्वर को इंगित करता है, फिर "वर्चुअल होस्ट" सुविधा का उपयोग करके उस आईपी पते पर हजारों वेबसाइटों को होस्ट करता है।

पीओ बॉक्स की तरह सोचें, अगर आप सिर्फ पोस्ट ऑफिस का पता लिखते हैं, लेकिन बॉक्स नंबर के बिना, मेल डिलीवर नहीं किया जाएगा।


0

तकनीकी विवरण के साथ यहां बहुत सारे उत्तर हैं, लेकिन मुझे लगता है कि सबसे सरल उच्च-स्तरीय स्पष्टीकरण यह है कि भले ही एक वेब सर्वर आईपी पते पर http ट्रैफ़िक के लिए ठीक से सुन रहा हो, सर्वर को आमतौर पर किसी विशेष डोमेन के लिए उत्तर देने के लिए भी कॉन्फ़िगर किया जाना चाहिए नाम, और वह नाम ग्राहक द्वारा भेजे गए अनुरोध में होना चाहिए (अर्थात वेब ब्राउज़र)

मैं कहता हूं "आमतौर पर" क्योंकि यह लगभग हमेशा इस तरह से किया जाता है, लेकिन वास्तव में ऐसी विधियां हैं जहां आप केवल आईपी पते का उपयोग किए जाने पर जवाब देने के लिए http सर्वर सेटअप कर सकते हैं।


-1

हमें वर्चुअल आईपी और समर्पित आईपी के बीच अंतर को समझने की जरूरत है।

यदि किसी वेबसाइट में एक समर्पित (साझा नहीं) आईपी है, तो (उदाहरण के लिए) http://123.456.789.012 वेबसाइट लाएगा।

इसे आज़माएं, जो एक साइट का समर्पित आईपी पता है जो मेरे पास है, www.negativeiongenerators.com: http://75.126.128.174 लेकिन जैसा कि दूसरों ने कहा है, यह आमतौर पर एक अच्छा विचार नहीं है।


1
यह सार्वभौमिक रूप से सच नहीं है। यह वेब सर्वर कॉन्फ़िगरेशन पर निर्भर करता है। आपके पास एक समर्पित आईपी पता हो सकता है और फिर भी होस्ट के बिना आईपी पर प्रतिक्रिया नहीं दे सकता है और आपके पास एक साझा आईपी पता भी हो सकता है और सर्वर पर एक वेबसाइट पर आईपी पता बिंदु हो सकता है। अकेले अपने आईपी पते के माध्यम से किसी वेबसाइट तक पहुंच की अनुमति देने में कुछ भी गलत नहीं है, हालांकि विशेष रूप से उपयोगी भी नहीं है।
क्वर्टी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.