मैं आईआईएस वेब सर्वर से HTTP कनेक्शन बना रहा हूं और ट्रांसफर-एन्कोडिंग का उपयोग करके एन्कोड किए गए डेटा के साथ एक POST अनुरोध भेज रहा हूं: खंडित। जब मैं ऐसा करता हूं, तो आईआईएस बस कनेक्शन को बंद करता है, बिना त्रुटि संदेश या स्थिति कोड। HTTP 1.1 spec के अनुसार,आईआईएस क्यों चंक ट्रांसफर एन्कोडिंग का समर्थन नहीं करता है?
सभी HTTP/1.1 आवेदन प्राप्त और डिकोड करने के लिए सक्षम होना चाहिए "chunked" हस्तांतरण-कोडिंग
तो मुझे समझ नहीं आता क्यों यह (क) कि निपटने नहीं कर रहा है एन्कोडिंग और (बी) यह एक स्टेटस कोड वापस नहीं भेज रहा है। अगर मैं स्थानांतरण-एन्कोडिंग की बजाय सामग्री-लंबाई भेजने के अनुरोध को बदलता हूं, तो क्वेरी सफल होती है, लेकिन यह हमेशा संभव नहीं होती है।
जब मैं अपाचे के खिलाफ एक ही चीज़ का प्रयास करता हूं, तो मुझे "411 लंबाई आवश्यक" स्थिति मिलती है और एक संदेश "खंडित स्थानांतरण-एन्कोडिंग वर्जित" होता है।
ये सर्वर इस एन्कोडिंग का समर्थन क्यों नहीं करते हैं?
क्लाइंट दूसरों के बीच एक हेड अनुरोध भेजकर सर्वर से पूछताछ कर सकता है।आरएफसी 2616 पढ़ना, सेक्शन 3.6 बताता है कि हस्तांतरण-एन्कोडिंग हेडर प्राप्त करते समय सर्वर को 501 प्रतिक्रिया भेजनी होगी जो समझ में नहीं आता है। धारा 3.6.1 का कहना है कि सभी HTTP 1.1 अनुप्रयोगों को खंडित स्थानांतरण-कोडिंग प्राप्त करने और डीकोड करने में सक्षम होना चाहिए। तो यह मेरे लिए स्पष्ट लगता है - क्लाइंट-टू-सर्वर संचार को तोड़ दिया जा सकता है। एक सामान्य परिदृश्य फ़ाइल अपलोड है। – Cheeso
मूल पोस्टर का उल्लेख नहीं किया गया है कि वे किस आईआईएस का उपयोग कर रहे हैं, लेकिन आईआईएस 7 निश्चित रूप से इनकमिंग चंक किए गए डेटा का समर्थन करता है - मुझे सी ++ एप्लिकेशन को आईआईएस 7 में बिना किसी समस्या के चुने गए डेटा के रूप में अनुरोध भेजना है –
मुझे लगता है कि आप गलत हैं । सर्वर और ग्राहकों को चंकित समर्थन करना चाहिए (इसका मतलब यह नहीं है कि वे हालांकि करते हैं)। आपका तर्क यह है कि असंगतता परिणाम वैध नहीं होगा, क्योंकि http1.1 का समर्थन करने वाले किसी भी क्लाइंट को यह भी समझना चाहिए कि http1.0 सर्वर से कैसे बात करें। देखें: http://www.jmarshall.com/easy/http/#http1.1s3 और: http://www.atnan.com/2008/8/8/transfer-encoding-chunked-chunky-http और: http : //www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.6 (धारा 3.6.1 भी) –