"RFC3986: Uniform Resource Identifier (URI): Generic Syntax" में प्रासंगिक path-absolute
non-terminal की घोषणा पर विचार करें (निर्दिष्ट, के रूप में विशिष्ट है, ABNF वाक्य रचना में):
path-absolute = "/" [ segment-nz *("/" segment) ]
फिर segment
घोषणा कुछ लाइनें और नीचे एक ही दस्तावेज़ में विचार करें:
segment = *pchar
यदि आप एबीएनएफ पढ़ सकते हैं, तो तारांकन (*
) निर्दिष्ट करता है कि निम्न तत्व pchar
दोहराया जा सकता है बनाने के लिए कई बार, शून्य समय सहित। इस और सीखना फिर से पढ़ने ऊपर path-absolute
घोषणा, आप देख सकते हैं कि एक संभावित खाली segment
imples कि दूसरी "/"
दोहरा सकते हैं अनिश्चित काल के लिए, इसलिए //////
(कम से कम एक /
के मनमाने ढंग से लंबाई) की तरह मान्य संयोजनों की इजाजत दी path-absolute
के हिस्से के रूप (जिसका उपयोग यूआरआई का वर्णन करने वाले नियम को निर्दिष्ट करने में किया जाता है)।
चूंकि सभी यूआरएल यूआरआई हैं, हम निष्कर्ष निकाल सकते हैं कि हां, यूआरएल को प्रति उद्धृत आरएफसी के लगातार कई फॉरवर्ड स्लैश की अनुमति है।
लेकिन ऐसा नहीं है कि हर कोई यूआरआई पार्सर्स प्रति विनिर्देशों का पालन करता है या लागू करता है, इसलिए मुझे पूरा यकीन है कि गैर-अनुपालन वाले यूआरआई/यूआरएल पार्सर्स और ऐसे सभी प्रकार के सॉफ़्टवेयर हैं जो इन शीर्ष पर ढेर करते हैं जहां ऐसे कोने के मामले बड़े सिस्टम को तोड़ते हैं।
आपको उद्धृत दस्तावेज़ के अनुभाग 3.3 को देखना है (या आरएफसी 3 9 86 जो इसे अप्रचलित करता है, लेकिन यहां पर चर्चा किए गए व्यवहार पर सहमत है), जो एबीएनएफ के माध्यम से निर्दिष्ट किया गया है कि कैसे 'path_segments' में कम से कम एक' सेगमेंट 'टोकन होता है, जो स्वयं खाली लंबाई का हो सकता है। इसका मतलब है कि '//' जैसे वर्णों के अनुक्रम यूआरआई में पूरी तरह मान्य हैं। – amn
@amn यह मान्य है, यहां कोई समस्या नहीं है। लेकिन सवाल यह था कि यह कुछ भी तोड़ सकता है या नहीं। और यह हो सकता है - यदि आप यूआरएल रीराइटिंग का उपयोग करते हैं (उदाहरण के लिए) – poncha
यह एक अच्छा जवाब है! शर्म की बात है कि यह https का डुप्लिकेट है: ///stackoverflow.com////////a/////10161264/////6618577 हालांकि ... –