दुर्घटना में एक हाल ही में खोजे बग के कारण है क्रोम और अन्य - वेबकिट ब्राउज़रों (!) * - खास तौर से किसी से संबंधित %%30%30
, %0%30
या %%300
URL के भाग के रूप में जो आंतरिक रूप से सभी अंत एक ही प्रतीक का प्रतिनिधित्व अप: अशक्त । आप यहाँ बग के बारे में अधिक पढ़ सकते हैं ।
यह एक बग नहीं है जो अधिकांश लिंक को प्रभावित करता है, इसलिए आपको आमतौर पर लिंक पर मंडराने के बारे में चिंता करने की ज़रूरत नहीं है।
नोट:
* अन्य WebKit ब्राउज़रों में सफारी, ओपेरा, स्टीम ब्राउज़र, मिडोरी, S60 (सिम्बियन), ब्लैकबेरी ब्राउज़र और प्लेस्टेशन 3 के ब्राउज़र शामिल हैं - लेकिन फ़ायरफ़ॉक्स, इंटरनेट एक्सप्लोरर या एज नहीं।
संपादित करें: इस बग को अब Chrome 45.0.2454.101 में डेल्टीक के रूप में इंगित किया गया है।
और क्या होता है
समस्या URL कैनोनिकलाइज़र से संबंधित है , जो लिंक पर मंडराने के साथ ही चलती है - संभवतः ब्राउज़र की स्थिति पट्टी में लिंक प्रदर्शित करने के लिए, और वेबपृष्ठ को प्रीफ़िट करने के लिए इसलिए यह एक बार क्लिक करने के बाद तेज़ी से लोड होता है।
URL कैनोनिकलाइज़र की भूमिका के लिए:
जब कोई URL लिखा जाता है HTML
, तो उसे इस रूप में /home
या के रूप में लिखा जा सकता है ../../home
, लेकिन ब्राउज़र को इस URL को किसी प्रोटोकॉल और किसी डोमेन के साथ भी अनुवाद करना होगा, जैसे कि http://superuser.com/home
। इसके अलावा यूआरएल हो सकती यूआरएल पलायन कि जरूरत होने के लिए अनुवाद है, और इन पलायन कर रहे हैं प्रतिशत इनकोडिंग , की तरह %%30%30
। (URL की अधिक विस्तृत सूची यहां से बच जाती है )।
इस URL अनुवाद को संभालने वाली कार्यक्षमता दुर्घटनाग्रस्त हो रही है, क्योंकि यह इनपुट प्राप्त करता है जो डेवलपर्स को उम्मीद नहीं थी / संभाल।
यहाँ कोड परिवर्तन का एक सारांश है जो समस्या को तय करता है:
URL पथ में समस्याग्रस्त नेस्टेड एस्केप को सही ढंग से हैंडल करें।
विशेष रूप से, यदि इनपुट में अनसेफिंग आउटपुट URL की ओर जाता है, जिसमें नया बचा हुआ अनुक्रम होता है, जैसे इनपुट "%% 30% 30" को "% 00" में परिवर्तित करना, आउटपुट सुनिश्चित करने के लिए "% 25" के रूप में अग्रणी '%' से बच जाएं। सीक्वेंस को नए मान्य एस्केप सीक्वेंस के रूप में नहीं माना जाता है।
यह सुनिश्चित करता है कि एक ही URL को दूसरी बार कैनोनिकलाइज़ करने से इसमें कोई बदलाव नहीं होगा, जो कि डिबग और रिलीज़ बिल्ड दोनों प्रकार के स्थानों में क्रैश और अन्य बग से बचने के लिए महत्वपूर्ण है।