फ़ाइल URL 3 स्लैश से क्यों शुरू होते हैं?


182

HTTP दो स्लैश से शुरू होता है। जैसे http://example.com

एफ़टीपी के लिए एक ही जाता है। जैसे ftp://example.com

हालाँकि, फ़ाइल "URL" तीन स्लैश से शुरू होती है। उदाहरण के लिए क्रोम का उपयोग करके पीडीएफ फाइल पढ़ना, URL होगा file:///D:/Desktop/Book.pdf

फ़ाइल URL तीन स्लैश का उपयोग क्यों करते हैं?


5
विंडोज के लिए ओपेरा यह file://localhost/D:/Desktop/स्वचालित रूप से फैलता है ।

जवाबों:


14

जैसा कि दूसरों ने उल्लेख किया है, फ़ाइल स्कीमा "फ़ाइल: // <होस्ट> / <पथ>" के रूप में है। हालांकि अधिकांश ब्राउज़रों को केवल दो स्लैश के साथ समस्या नहीं होगी, और ठीक ही ऐसा होगा।

सभी चीजें समान, ट्रिपल स्लैश और "लोकलहोस्ट" कीवर्ड केवल मान्य URI / URL सिंटैक्स के साथ अनुरूपता सुनिश्चित करने के लिए मौजूद हैं। फ़ाइल स्कीमा के संदर्भ में, होस्ट अर्थहीन है क्योंकि यह किसी भी स्पष्ट हस्तांतरण प्रोटोकॉल या सर्वर दस्तावेज़ पथ के बिना किसी फ़ाइल सिस्टम से सीधे लोड होता है। क्योंकि यह HTTP नहीं है, यह एक मानक वेब सर्वर से लोड नहीं हो सकता है जहां सिद्धांत में आप कई स्थानीय वर्चुअल होस्ट सेट कर सकते हैं। और यह एक मानक नेटवर्क वॉल्यूम से लोड नहीं हो सकता है जो तकनीकी रूप से एक और "होस्ट" है, क्योंकि ब्राउज़र केवल "फ़ाइल: /// वॉल्यूम / फू" जैसे वॉल्यूम नाम का उपयोग करता है। अंत में, "फ़ाइल: //example.com/some/file" जैसी चीज़ों की कोशिश नहीं की जाती है। बाहरी मेजबान का समर्थन करने के लिए शायद कुछ कारण है, लेकिन मैं किसी के बारे में नहीं सोच सकता।

IETF वर्तमान में ट्रिपल-स्लेश आवश्यकता को हटाने के लिए परिवर्तनों का मसौदा तैयार कर रहा है, हालांकि मसौदा भी कुछ विषम संभावनाओं को जोड़ता है file:c|/pathऔर जैसे भी file://///host.example.com/path

https://tools.ietf.org/html/draft-ietf-appsawg-file-scheme-03

3. "यह विनिर्देश न तो स्थानीय फ़ाइलों तक पहुँचने के लिए एक तंत्र को परिभाषित करता है और न ही मना करता है।"


1
मसौदा 2017 में RFC 8089 बन गया है , जिसमें अभी भी आपका उद्धरण शामिल है।
कॉमरफिक

252

पूरा वाक्य विन्यास है file://host/path

यदि मेजबान है localhost, तो इसे छोड़ा जा सकता है, जिसके परिणामस्वरूप file:///path

RFC 1738 देखें - यूनिफ़ॉर्म रिसोर्स लोकेटर (URL) :

एक फ़ाइल URL फॉर्म लेता है:

file://<host>/<path>

[...]

एक विशेष मामले के रूप में, <host>स्ट्रिंग "लोकलहोस्ट" या रिक्त स्ट्रिंग हो सकती है; इसकी व्याख्या 'उस मशीन से की जा रही है जिसमें URL की व्याख्या की जा रही है।'


3
कूल, मुझे इस प्रश्न के उत्तर की उम्मीद नहीं थी एक RFC मानक!
पेसियर

33
@ स्पेसर लगभग कुछ भी जो इंटरनेट के साथ करना है, उसे एक आरएफसी द्वारा समझाया जा सकता है (ध्यान दें कि वे जरूरी "मानक" नहीं हैं, लेकिन इस तरह के रूप में अपनाया जा सकता है)।
slhck

5
ध्यान दें कि टिम बर्नर्स ली ने उन 2 स्लैशों के लिए माफी मांगी है जो हर URL में हैं: news.bbc.co.uk/2/hi/technology/8306631.stm
पीटर

7
क्या मैं localhostअन्य प्रोटोकॉल से भी चूक सकता हूं या यह केवल इसके लिए काम करता है file://?
आगोस

3
ध्यान दें कि फ़ायरफ़ॉक्स वास्तव में इस मानक का पालन नहीं करता है `फ़ाइल: // परीक्षण / सी: \` उसी तरह का व्यवहार करेगा जैसे `फ़ाइल: /// सी: \` और `http: /// टेस्ट` एक अमान्य URL देगा त्रुटि
15

27

डेनिस ने तीसरे स्लैश के बारे में बताया है, जिसमें hostसे अलग होने की जरूरत है path, लेकिन अन्य दो बहुत अधिक दिलचस्प हैं ...

यह पता चला है कि वे URL सिंटैक्स के लिए एक बेकार और कुछ हद तक मनमाना जोड़ थे। वर्ल्ड वाइड वेब के आविष्कारक और इसके कई मानकों ( RFC सहित डेनिस से जुड़े) के लेखक टिम बर्नर्स-ली ने 2009 में वापस एक साक्षात्कार में 'डबल स्लैश' के अपने उपयोग पर जोर दिया।

डबल स्लैश, हालांकि उस समय एक प्रोग्रामिंग सम्मेलन, वास्तव में आवश्यक नहीं था, श्री बर्नर्स-ली ने समझाया। सभी कागजों और पेड़ों को देखें, उन्होंने कहा, कि अगर लोगों को लिखने और वर्षों में कागज पर उन स्लैशों को लिखना नहीं पड़ा तो उन्हें बचाया जा सकता था - मानव श्रम और समय बिताने के लिए उन दो कीस्ट्रोक्स के टाइप करने के लिए अनगिनत लाखों ब्राउज़र एड्रेस बॉक्स में कई बार।

http://bits.blogs.nytimes.com/2009/10/12/the-webs-inventor-regrets-one-small-thing/

तो, कुछ 18 साल पहले दूरदर्शिता में एक नाबालिग (और अछूत) के लिए बचाना, आपकी फ़ाइल URL के file:/D:/Desktop/Book.pdfबजाय आसानी से हो सकता था file:///D:/Desktop/Book.pdf

आपके प्रश्न का उत्तर देने के लिए कोई कारण नहीं है कि URL में 3 स्लैश क्यों हैं।


अपडेट: जैसा कि @ComFreek कमेंट में बताते हैं, 2017 तक, file:/D:/...ऊपर दिया गया उदाहरण अब मान्य है! यह RFC 8089 के लिए धन्यवाद है , जो विशेष रूप से पिछले मानक से इस फिक्स को कॉल करता है ...

[RFC1738] में परिभाषा के अनुसार, एक फ़ाइल URL हमेशा टोकन "फ़ाइल: //" से शुरू होता है, उसके बाद एक (वैकल्पिक रूप से रिक्त) होस्ट नाम और एक "/" होता है। धारा 2 में दिया गया वाक्यविन्यास पूरे प्राधिकरण घटक को बनाता है, जिसमें डबल स्लैश "//", वैकल्पिक शामिल है।

क्या वक़्त है जीने का।


2
टिमब्लॉ ने अपने एफएक्यू
मोलॉम्बी सिप

2
यह उल्लेख करने के लिए नहीं कि 2 बाइट्स का उपयोग करके बचाया जा सकता है http:example.comइसके बजाय http://example.comयह बहुत अधिक नहीं लग सकता है, लेकिन वे जोड़ते हैं। Google को एक दिन में लाखों खोजें प्राप्त होती हैं। एक पृष्ठ पर कितने लिंक हैं? कम से कम 20. इसका मतलब है कि एक लाख खोजों के लिए, यदि स्लैश की आवश्यकता नहीं थी, तो 20 एमबी बैंडविड्थ को बचाया जा सकता था।
कोल जॉनसन

1
@ColeJohnson - क्या आप जानते हैं कि आप प्रोटोकॉल भाग को भी छोड़ सकते हैं? इसलिए http पर प्रेषित दस्तावेज़ में http://example.comसे जोड़ा जा सकता है //example.com। इसे एक प्रोटोकॉल सापेक्ष url कहा जाता है , सभी ब्राउज़र उनका समर्थन करते हैं।
मोलोमबी

मैं उन लोगों के बारे में अच्छी तरह से जानता हूं, लेकिन मैं व्यक्तिगत रूप से केवल सीएसएस में उनका उपयोग करता हूं। HTML लिखते समय, मैं प्रोटोकॉल का भी उपयोग करता हूं। वास्तव में कोई वास्तविक कारण नहीं। सिवाय शायद इसलिए कि जब कुछ साल पहले HTML5 + CSS3 पहली बार "बड़ा" बन गया था, तो लगभग सभी साइटें जो मैंने देखीं, वे ऐसी थीं।
कोल जॉनसन

1
आपके उत्तर का सुझाव देने के विपरीत, RFC 8089 (2017 से) के file:/D:/Desktop/Book.pdfअनुसार एक मान्य फ़ाइल URI है , जिसने फ़ाइल URI पहलुओं में RFC 1738 (1994) को उलट दिया ।
कॉमफ्रीक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.