इस सप्ताह की शुरुआत में, मुझे ऐसा कुछ करना था जो एक अर्थशास्त्र उल्लंघन की तरह महसूस करता हो। मुझे समझाने दो।HTTP प्राप्त करें और पोस्ट करें semantics और सीमाएं
मैं एक साधारण AJAX क्लाइंट एप्लिकेशन बना रहा था, जो किसी दिए गए पैरामीटर के साथ सेवा के लिए अनुरोध करना था। चूंकि पूरा ऐप मूल रूप से केवल पढ़ने के लिए है, मैंने सोचा था कि HTTP GET का उपयोग करने का तरीका था। मुझे प्राप्त करने वाले कुछ पैरामीटर सरल थे (जैसे सॉर्ट ऑर्डर, या पेज नंबर)।
हालांकि, आवश्यक पैरामीटर में से एक चर चरम हो सकता है, और इससे मुझे चिंता हुई। चूंकि मैं जीईटी अनुरोध के क्वेरीस्ट्रिंग में सभी पैरामीटर एन्कोड कर रहा था, ऐसा लगता है कि यह एक अनावश्यक upper limit of (roughly) 2000 characters for the request URL रखा गया था। और ध्यान दिए बिना, मुझे 500-वर्ण-लंबे अनुरोध URL देखने को पसंद नहीं आया।
इसलिए, चूंकि एक पोस्ट अनुरोध में ऐसी सीमा नहीं है, इसलिए मैंने स्विच करने का निर्णय लिया। लेकिन यह सही नहीं लगता है। मैं इस धारणा के तहत हूं कि एक पोस्ट डेटा के संशोधन को दर्शाता है - लेकिन मैं इसका उपयोग केवल एक साधारण पढ़ने-योग्य अनुरोध के लिए कर रहा हूं।
क्या ऐसा करने का कोई बेहतर तरीका है? कई मानकों के साथ एक जीईटी करने के लिए? मैंने एक विधि के बारे में सुना है - जहां आप पैरामीटर पैरामीटर का प्रारंभिक पोस्ट करते हैं, और फिर एक GET निष्पादित करते हैं। लेकिन, यह तकनीक वांछित होने के लिए बहुत छोड़ देता है।
लेकिन इस विशिष्ट मामले को देखते हुए, HTTP अनुरोध विधियों के वास्तविक अर्थशास्त्र और सीमाएं क्या हैं? और किसी भी प्रकार के पैरामीटर पेलोड का समर्थन क्यों नहीं करता है? यूआरएल में क्वेरीस्ट्रिंग का उपयोग लगभग मुझे हैक की तरह लगता है।
आपको ऐसा क्यों लगता है कि पोस्ट डेटा संशोधन को दर्शाता है? –
@ कॉनराडफ्रिक्स: फ़ॉर्म अपलोड करने, फ़ाइलों को अपलोड करने और [सामान्य गैर-बेवकूफ कार्रवाइयों] में उपयोग करने के कारण इसका उपयोग करने के कारण (http://en.wikipedia.org/wiki/POST_ (HTTP) #Affecting_server_state) – voithos
यदि आप हैं एक अजाक्स आवेदन लिखना, आप यूआरएल की लंबाई की परवाह क्यों करते हैं?यह भी ध्यान रखें कि 2000 वर्ण सीमा केवल ब्राउज़र यूआरएल पर लागू होती है, न कि अजाक्स अनुरोध (जैसा कि आपने प्रस्तुत लिंक पर टिप्पणियों में उल्लेख किया है)। –