मुझे मानक में इस बारे में एक निश्चित विनिर्देश ढूँढने में परेशानी हो रही है। मेरे पास एक HTTP क्लाइंट है जिसमें PUT अनुरोध करते समय 'सामग्री-लंबाई: 0' शीर्षलेख शामिल नहीं है, जहां मैं कोई बॉडी निर्दिष्ट नहीं करता हूं, और एक सर्वर जो ऐसे अनुरोधों से भ्रमित हो जाता है, और मुझे आश्चर्य है कि मुझे कौन सा प्रोग्राम चाहिए दोष दे रहा हूँ।क्या एक HTTP पुट अनुरोध शरीर को शामिल करने के लिए आवश्यक है?
उत्तर
HTTP अनुरोधों में एक बॉडी है यदि उनके पास सामग्री-लंबाई या स्थानांतरण-एन्कोडिंग हेडर (RFC 2616 4.3) है। अगर अनुरोध में न तो है, तो उसके पास कोई शरीर नहीं है, और आपके सर्वर को इसका इलाज करना चाहिए।
यह कहा गया कि पुट अनुरोध के लिए कोई शरीर नहीं है, और इसलिए यदि मैं एक क्लाइंट को डिजाइन कर रहा था जो वास्तव में एक खाली निकाय भेजना चाहता था, तो मैं सामग्री-लंबाई पास कर दूंगा: 0. दरअसल, किसी के आधार पर POST और PUT विधि परिभाषाओं को पढ़ना (RFC 2616 9.5, 9.6) कोई तर्क दे सकता है कि शरीर को आवश्यक होने के लिए निहित किया गया है - लेकिन किसी भी शरीर को संभालने का उचित तरीका शून्य-लंबाई वाले शरीर को मानना नहीं होगा।
सामग्री की लंबाई क्षेत्र HTTP/1.1 मानक http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13
क्या कोई सामग्री नहीं है किया जा रहा है PUT (क्रिया अर्थ में) सर्वर पर है, तो में निम्न अनुभाग के अनुसार आवश्यक है? spec सामग्री को "संलग्न इकाई" के रूप में संदर्भित करता है, लेकिन किसी सामग्री के अनुरोध के साथ कोई संलग्न इकाई नहीं होगी, और इसलिए सर्वर पर कुछ भी नहीं डालना चाहिए।
बेशक, आप सर्वर पर कुछ भी नहीं करना चाहते थे, इस मामले में आप शायद इसके बजाय एक DELETE चाहते हैं।
नहीं सवाल का जवाब है, लेकिन जोर देते हुए कैसे jaxrs मुझे bodyless डालता का लगातार उपयोग करने के लिए अनुमति देता है:
bodyless पुट का उदाहरण: उपयोगकर्ता एक अतिरिक्त अनुमति दे।
PUT/व्यवस्थापक/उपयोगकर्ता/{username}/अनुमति/{अनुमति}
नहीं करना चाहिए है मेरी मुसीबत! मैं एक ही निष्कर्ष पर आया था। लेकिन कड़ाई से बोलते हुए, यह आरएफसी के खिलाफ चला जाता है, जहां स्पष्ट रूप से उल्लेख नहीं किया गया है, शरीर को मौजूदा के रूप में जाना जाता है। यह मुद्दों का कारण बन सकता है, लेकिन मेरे अनुभव में, सभी आधुनिक वेब सर्वर/ढांचे काम करेंगे। –
एक शरीर, IETF की वजह से नहीं अगर कोई शरीर हालांकि सामग्री-लंबाई 0 होना चाहिए। उस विधि का प्रयोग करें जो आप कर रहे हैं उसके लिए उपयुक्त है। आप इसे कोड में लाना, यह देखते हुए
int x;
int f(){ return x; }
और एक रिमोट r
बुलाया चर थे, तो।
एक पोस्ट
r=f();
के बराबर एक पुट
r=x;
के बराबर है और एक प्राप्त
x=r;
यह पुट बनाम पोस्ट का सबसे स्पष्ट उदाहरण है जिसे मैंने कभी पढ़ा है, हालांकि विषय से बाहर –
- 1. HTTP पुट अनुरोध कैसे करें?
- 2. HTTP अनुरोध के शरीर को RESTEasy
- 3. क्रोम एक HTTP पुट अनुरोध कैशिंग कर रहा है
- 4. क्या पुट और POST अनुरोध आवश्यक हैं/अनुरोध निकाय होने की उम्मीद है?
- 5. HTTP अनुरोध शरीर के साथ हटाएँ मुद्दों
- 6. पोस्ट अनुरोध के शरीर को
- 7. आंशिक पुट को अस्वीकार करने के पीछे क्या औचित्य है?
- 8. पुट अजाक्स अनुरोध
- 9. एक HTTP अनुरोध भेज रहा है जो सर्वर को केवल हेडर और कोई शरीर लौटने के लिए कहता है?
- 10. क्या एक पोस्ट पूरा करने के लिए HttpWebRequest.GetResponse आवश्यक है?
- 11. स्प्रिंग RestTemplate - http अनुरोध शरीर के साथ प्राप्त
- 12. एक HttpServletRequest मानचित्र का एक विशेषता HTTP कच्चे HTTP अनुरोध के लिए कैसे है?
- 13. वेब अनुरोध स्ट्रीम बंद करने के लिए आवश्यक है?
- 14. पोस्ट और एक HTTP HTTP अनुरोध के बीच क्या अंतर है?
- 15. एक फ़ाइल को शामिल करने के लिए जिसमें सभी आवश्यक पर्ल मॉड्यूल नाम शामिल हैं?
- 16. कैसे एक HTTP अनुरोध लिखने के लिए
- 17. क्या एक PHP स्क्रिप्ट ब्राउज़र अनुरोध को HTTP अनुरोध खत्म करने में सोच सकता है?
- 18. PHP मल्टीपार्ट फॉर्म डेटा पुट अनुरोध?
- 19. REST - HTTP 1.1 के अनुसार एक पुट अनुरोध ऑटो-वृद्धि वाले संसाधन पहचानकर्ता
- 20. HTTP अनुरोध की सामग्री लंबाई> शरीर का आकार
- 21. एक HTTP अनुरोध
- 22. एक HTTP अनुरोध
- 23. एक http अनुरोध
- 24. पुट अनुरोधों के लिए यूआरआई में आईडी सहित
- 25. Symfony2: एक HTTP अनुरोध
- 26. HTTP स्थिति कोडों की व्यापक सूची जिसमें एक प्रतिक्रिया शरीर शामिल नहीं है
- 27. मैं अपने पोस्ट HTTP अनुरोध के शरीर को PHP के साथ नहीं पढ़ सकता!
- 28. टेलनेट एक http अनुरोध
- 29. क्या HTTP 404 एक पुट ऑपरेशन के लिए उपयुक्त प्रतिक्रिया है जहां कुछ लिंक संसाधन नहीं मिला है?
- 30. क्या एक अनुरोध डिस्पैचर आगे मूल अनुरोध की HTTP विधि को बनाए रखता है?
के बराबर यही कारण है एक वास्तव में एक MUST – bdonlan