सवाल एक आईपीवी 6 यूआरएल में मेजबान और बंदरगाह को कैसे अलग कर सकता है?


यूआरएल में हमेशा यह प्रारूप होता है:

<protocol>://<host>[:<port>]/[<path>][#<hash>]

समस्या यह है कि आईपीवी 6 बंदरगाहों और मेजबान के विभाजक की तरह कोलन का उपयोग करता है, उदाहरण के लिए:

2001:db8:1f70::999:de8:7648:6e8

लेकिन क्या होगा यदि यह मेजबान है, और मैं पोर्ट 100 पर HTTP के साथ कनेक्ट करना चाहता हूं?

http://2001:db8:1f70::999:de8:7648:6e8:100/

समस्या आखिरी कॉलन है। चूंकि शून्य को डबल कॉलन (1f70 और 999 के बीच) से छोड़ा जाता है, इसलिए यह अज्ञात है कि '100' आईपी या पोर्ट नंबर से संबंधित है। हम यह कैसे जान सकते हैं?


80
2017-11-24 22:48


मूल




जवाब:


उस मामले में नोटेशन स्क्वायर ब्रैकेट में आईपीवी 6 आईपी नंबर एन्कोड करना है:

http://[2001:db8:1f70::999:de8:7648:6e8]:100/

ऐसा इसलिए है आरएफसी 3 9 86, खंड 3.2.2: होस्ट

एक इंटरनेट प्रोटोकॉल शाब्दिक पता, संस्करण 6 द्वारा पहचाना गया एक मेजबान       [आरएफसी 3513] या बाद में, आईपी शाब्दिक संलग्न करके प्रतिष्ठित है       वर्ग ब्रैकेट के भीतर ("[" और "]")। यह एकमात्र जगह है जहां       यूआरआई वाक्यविन्यास में वर्ग ब्रैकेट वर्णों की अनुमति है। में       भविष्य की प्रत्याशा, अभी तक अनिर्धारित आईपी शाब्दिक पता प्रारूप,       एक कार्यान्वयन ऐसे संकेत को इंगित करने के लिए वैकल्पिक संस्करण ध्वज का उपयोग कर सकता है       ह्युरिस्टिक दृढ़ संकल्प पर भरोसा करने के बजाय स्पष्ट रूप से प्रारूप।


111
2017-11-24 22:51



यह इंगित करने लायक है कि ब्रैकेट हैं नहीं वैकल्पिक। यह एकमात्र अस्पष्ट तंत्र है जिसके द्वारा ब्राउज़र एक संख्यात्मक आईपीवी 6 पता की पहचान कर सकता है। - tylerl
बंदरगाह के अंदर बंदरगाह नहीं होना चाहिए? - jayarjo
@jayarjo नहीं, क्योंकि ब्रैकेट आईपी पते के बीच असंबद्धता प्रदान करने के लिए हैं, जिसमें कोलन और बंदरगाह शामिल है, जो कोलन द्वारा आईपी पते से अलग किया गया है। - sysadmin1138♦