जैसा कि इसमें घोषित किया गया है http://www.boutell.com/newfaq/misc/urllength.html , HTTP क्वेरी स्ट्रिंग की सीमित लंबाई है। यह क्लाइंट (फ़ायरफ़ॉक्स, आईई, ...), सर्वर (अपाचे, आईआईएस, ...) या नेटवर्क उपकरण (ऐप्लिकेटिव फ़ायरवॉल, ...) द्वारा सीमित किया जा सकता है।
आज मैं इस समस्या का सामना एक खोज प्रपत्र के साथ करता हूँ। हमने बहुत सारे फ़ील्ड के साथ एक खोज फ़ॉर्म विकसित किया है, और इस फॉर्म को सर्वर को GET अनुरोध के रूप में भेजा जाता है, इसलिए मैं परिणामी पृष्ठ को बुकमार्क कर सकता हूं।
हमारे पास इतने सारे क्षेत्र हैं कि हमारा क्वेरी स्ट्रिंग 1100 बाइट्स लंबा है, और हमारे पास फ़ायरवॉल है जो HTTP GET के अनुरोध को 1024 से अधिक बाइट्स के साथ छोड़ देता है। हमारा सिस्टम प्रशासक हमें इसके बजाय POST का उपयोग करने की सलाह देता है ताकि कोई सीमा न रहे।
निश्चित रूप से, POST काम करेगा, लेकिन मैं वास्तव में एक GET के रूप में एक खोज महसूस करता हूं और POST नहीं। इसलिए मुझे लगता है कि मैं यह सुनिश्चित करने के लिए हमारे क्षेत्र के नामों की समीक्षा करूंगा कि स्ट्रिंग स्ट्रिंग बहुत लंबी नहीं है, और यदि मैं नहीं कर सकता तो मैं व्यावहारिक रहूंगा और POST का उपयोग करूंगा।
लेकिन क्या रेस्टफुल सेवाओं के डिजाइन में कोई दोष है? यदि हमारे पास GET अनुरोध में सीमित लंबाई है, तो मैं बड़ी वस्तुओं को Restful webservice में कैसे भेज सकता हूं? उदाहरण के लिए, यदि मेरे पास एक प्रोग्राम है जो एक फ़ाइल के आधार पर गणना करता है, और मैं इस तरह एक RESTful webservice प्रदान करना चाहता हूं http://compute.com?content=<base64 file>
:। यह काम नहीं करेगा क्योंकि क्वेरी स्ट्रिंग में असीमित लंबाई नहीं है।
मैं थोड़ा हैरान हूँ ...