2012-12-28 18 views
8

क्या यूआरआई के बजाय गैर-ASCII अक्षरों वाले गुणों के रूप में आईआरआई का उपयोग करने के लिए यह वैध HTML है (उदा। href विशेषताओं के लिए)? क्या HTML स्वाद (HTML और XHTML, 4 और 5) के बीच कोई अंतर है? कम से कम RFC 3986 का अर्थ यह है कि यह नहीं है।आईआरआई HTML विशेषता मान के रूप में मान्य हैं?

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

अभी तक, मैंने W3C validator के साथ कुछ परीक्षण किए हैं, और यूआरआई में अनसुलझा यूनिकोड वर्ण HTML 4/5 और एक्सएचटीएमएल 4/5 सिद्धांतों के साथ किसी भी चेतावनी या त्रुटियों को ट्रिगर नहीं करते हैं (लेकिन निश्चित रूप से त्रुटि की अनुपस्थिति संदेश त्रुटियों की अनुपस्थिति का संकेत नहीं देते हैं)।

कम से कम क्रोम कच्चे यूटीएफ -8 आईआरआई का भी समर्थन करता है, लेकिन प्रतिशत-HTTP अनुरोध को फायर करने से पहले उन्हें बचाता है। साथ ही, मेरा वेब सर्वर (lighttpd) यूटीएफ -8 अक्षरों को उनके प्रतिशत-एन्कोडेड के साथ-साथ HTTP अनुरोध में अनएन्डेड रूप में समर्थन देने लगता है।

+0

सावधान रहें [आरएफसी 3 9 87 की धारा 1.2) (http://tools.ietf.org/html/rfc3987#section-1.2) उल्लेख करता है कि [आरएफसी 2616] (http: //tools.ietf द्वारा परिभाषित HTTP। संगठन/एचटीएमएल/आरएफसी 2616) ** ** ** आईआरआई का समर्थन नहीं करता है, इसलिए उन्हें संभालना मानक के बाहर है। संदर्भित संसाधन को पुनर्प्राप्त करने का प्रयास करने से पहले आप (या आपके ब्राउज़र, या किसी को) किसी दिए गए आईआरआई को किसी यूआरआई को मैप करने की आवश्यकता है। – Oliver

+0

[यूआरएल में यूनिकोड वर्ण] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/2742852/unicode-characters-in-urls) –

उत्तर

6

एचटीएमएल 4.01 काफी सरल है। अलग-अलग विशेषताओं है कि वे क्या शामिल कर सकते हैं के रूप में अलग नियम होते हैं, लेकिन अगर हम एक <a> तत्व पर href विशेषता के साथ काम कर रहे हैं, तो HTML 4 spec, section B.2.1 Non-ASCII characters in URI attribute values का कहना है:

... निम्नलिखित href मूल्य अवैध है:

<A href="http://foo.org/Håkon">...</A>

एचटीएमएल 5 अलग है। इसमें कहा गया है IRIs are valid providing they comply with some additional conditions.

एक URL मान्य URL है जब निम्नलिखित शर्तें कम से कम एक रखती है:

  • URL को मान्य यूआरआई संदर्भ [RFC3986] है।

  • यूआरएल एक वैध आईआरआई संदर्भ है और इसमें कोई क्वेरी घटक नहीं है। [आरएफसी 3 9 87]

  • यूआरएल एक वैध आईआरआई संदर्भ है और इसके क्वेरी घटक में कोई अनचाहे गैर-ASCII वर्ण नहीं हैं। [आरएफसी 3 9 87]

  • यूआरएल एक मान्य आईआरआई संदर्भ है और यूआरएल दस्तावेज़ का चरित्र एन्कोडिंग यूटीएफ -8 या यूटीएफ -16 एन्कोडिंग है। [RFC3987]

XHTML 1.x HTML 4.01 के रूप में ही नियमों का पालन करती।

एक्सएचटीएमएल 5 एचटीएमएल 5 जैसा ही है।

2

संदेह में, निश्चित उत्तर के लिए आधिकारिक HTML चश्मा पढ़ें।

एचटीएमएल 4 आईआरआई का समर्थन नहीं करता है। वे RFC 3987 Section 3.1 प्रति यूआरआई के रूप में एन्कोड किया जाना चाहिए, या UTF-8 प्रति HTML4 Section B.2.1

एचटीएमएल 5 प्रतिशत एन्कोडिंग के साथ के रूप में गैर- ASCII यूआरआई डेटा सांकेतिक शब्दों में बदलना दोनों यूआरआई और सभी स्थानों पर जहां URL की अनुमति है में आइरिस का समर्थन करता है, HTML5 Section 2.6 प्रति।

संबंधित मुद्दे