2009-05-26 12 views
7

मैं RFC 2616 से बता सकते हैं कि क्या नहीं एक HTTP ग्राहक एक 204 कोई सामग्री नहीं प्रतिक्रिया है कि सामग्री-लंबाई शामिल स्वीकार करना चाहिए: 0 या स्थानांतरण-एन्कोडिंग: chunked हेडर। इन हेडर, कुछ HTTP ग्राहकों और प्रॉक्सी तोड़ने के लिए जो जाहिरा तौर पर खाली प्रतिक्रिया शरीर को पढ़ने के लिए प्रयास करने के लगते हैं, लेकिन the spec reads:एक HTTP अनुप्रयोग है जो एक सामग्री-लंबाई या स्थानांतरण-एन्कोडिंग भेजता है जिसमें 204 कोई सामग्री प्रतिक्रिया टूट जाती है?

  1. किसी भी प्रतिक्रिया संदेश जो "चाहिए" संदेश-शरीर (जैसे के रूप में शामिल 1xx, 204, और 304 प्रतिक्रियाएं और हेड अनुरोध के लिए कोई प्रतिक्रिया) संदेश में मौजूद इकाई-हेडर फ़ील्ड्स की परवाह किए बिना हेडर फ़ील्ड्स, के बाद हमेशा खाली खाली लाइन द्वारा समाप्त किया गया है।

मेरे लिए "इकाई-हेडर फील्ड की परवाह किए बिना" का तात्पर्य है कि ग्राहकों के मामलों के इस राज्य को बर्दाश्त करना चाहिए। Erlang HTTP library ने इस व्याख्या को चुना है। हालांकि, lighthttpd और IBM विपरीत व्याख्या चुना है - कि सर्वर जवाब है कि शरीर धारण करने की अनुमति नहीं है के लिए इन शीर्षकों को शामिल नहीं करना चाहिए।

तो क्या वेब एप्लिकेशन उन शीर्षकों को प्रतिक्रिया से हटा देना चाहिए, या नेटवर्क बुनियादी ढांचे और ग्राहकों को उन शीर्षकों को 204 पर कोई सहन नहीं करना चाहिए, कोई सामग्री नहीं, 304 संशोधित नहीं है आदि?

उत्तर

6

RFC7230 के अनुसार पृष्ठ 29 के अंत में (कृपया http://tools.ietf.org/html/rfc7230#section-3.3.1 देखें) यह कहता है:

एक सर्वर 1xx की एक स्थिति कोड के साथ किसी भी जवाब में एक स्थानांतरण-एन्कोडिंग हेडर फ़ील्ड नहीं भेजना चाहिए (सूचनात्मक) या 204 (नहीं सामग्री)।

इसलिए वेब एप्लिकेशन को उन शीर्षकों को प्रतिक्रिया के साथ नहीं भेजना चाहिए।

+0

अच्छा - छह साल, आपको सही जवाब मिल गया है! –

2

मैं आपको यह नहीं बता सकता कि क्या सही है, उसमें मुझे उस विवरण में HTTP प्रोटोकॉल नहीं पता है।

लेकिन, आप अपने आप से पूछना करने के लिए मिल गया:

  1. मैं उन हेडर को दूर करने के अपने आवेदन बदल सकते हैं?
  2. या क्या मैं उन शीर्षकों को अनदेखा करने के लिए अपने आवेदन के उपभोक्ताओं को बदल सकता हूं?

मेरी राय में, आवेदन उस मामले में उन शीर्षकों को नहीं भेजना चाहिए।

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