2009-10-15 18 views
19

क्या यूआरएल के टुकड़े भाग (हैश के रूप में भी जाना जाता है) के लिए लंबाई सीमा है?यूआरएल टुकड़े की अधिकतम लंबाई (हैश)

+0

हैश के लिए कोई मानक नहीं है क्योंकि यह केवल क्लाइंट-साइड है, लेकिन सीमा आमतौर पर [बहुत अधिक] (http://stackoverflow.com/a/25759637/405550) है। – Zaz

उत्तर

8

पूरे यूआरएल के लिए निश्चित रूप से एक लंबाई है।

पढ़ें

RFC2616 - Hypertext Transfer Protocol

Maximum URL length is 2,083 characters in Internet Explorer

What is the maximum length of a URL?

+1

आरएफसी 2616 में कहने के अलावा खंडों का उल्लेख नहीं है: "यूआरआई में एक टुकड़ा शामिल नहीं होना चाहिए" – Rick

13

हैश केवल ग्राहक के पक्ष है, इसलिए HTTP के लिए नियम इस पर लागू नहीं हो सकता है।

+0

"हैश" वास्तव में यूआरएल फ्रैगमेंट है और सर्वर पर नहीं भेजा जाता है, इसलिए सर्वर परिप्रेक्ष्य से लंबाई सीमा लागू नहीं होती है । –

7

यह ब्राउज़र पर निर्भर करता है। मैंने पाया कि सफारी, क्रोम और फ़ायरफ़ॉक्स में, एक लंबे हैश वाला यूआरएल कानूनी है, लेकिन यदि यह एक पैरामीटर सर्वर को भेजता है, तो ब्राउज़र 414 या 413 त्रुटि प्रदर्शित करेगा।

उदाहरण के लिए: http://www.stackoverflow.com/?abc#{hash value with 100 thousand characters} जैसे यूआरएल ठीक रहेगा। और आप जावास्क्रिप्ट में हैश मान प्राप्त करने के लिए location.hash का उपयोग कर सकते हैं लेकिन http://www.stackoverflow.com/?abc&{query with 100 thousand characters} जैसे यूआरएल अवैध होंगे, अगर आप इस लिंक को एड्रेस बार में पेस्ट करते हैं, तो 413 त्रुटि कोड दिया जाएगा और संदेश the client issued a request that was too long है। यदि यह किसी वेब पेज में एक लिंक है, तो मेरे कंप्यूटर में, Nginx 414 त्रुटि संदेश प्रतिक्रिया देता है।

मुझे आईई में स्थिति नहीं पता है।

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

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