क्या कंटेंट-ट्रांसफर-एनकोडिंग एक HTTP हेडर है?



base64 mime (1)

मैं एक वेब सेवा लिख ​​रहा हूँ जो एक बेस 64-एनकोडेड पीडीएफ फाइल लौटाती है, इसलिए मेरी योजना प्रतिक्रिया में दो हेडर जोड़ने की है:

Content-Type: application/pdf
Content-Transfer-Encoding: base64

मेरा प्रश्न है: क्या Content-Transfer-Encoding एक वैध HTTP हेडर है? मुझे लगता है कि यह केवल MIME के ​​लिए हो सकता है। यदि नहीं, तो मुझे इस तथ्य का प्रतिनिधित्व करने के लिए अपनी HTTP प्रतिक्रिया कैसे तैयार करनी चाहिए कि मैं एक बेस 64-एनकोडेड पीडीएफ वापस कर रहा हूं? धन्यवाद।

संपादित करें:

ऐसा लगता है कि HTTP इस शीर्ष लेख का समर्थन नहीं करता है। RFC2616 सेक्शन 14 :

नोट: जबकि कंटेंट-एमडी 5 की परिभाषा HTTP के लिए RFC 1864 की तरह ही है, MIME निकाय-निकायों के लिए, ऐसे कई तरीके हैं, जिसमें Content-MD5 का HTTP HTTP-निकायों में आवेदन इसके अनुप्रयोग से MIME निकाय तक भिन्न होता है- निकायों। एक यह है कि HTTP, MIME के ​​विपरीत, सामग्री-स्थानांतरण-एन्कोडिंग का उपयोग नहीं करता है, और स्थानांतरण-एन्कोडिंग और सामग्री-एन्कोडिंग का उपयोग करता है।

मुझे अपने हेडर को किस पर सेट करना चाहिए, इसके लिए कोई विचार? धन्यवाद।

EDIT 2

इस PHP संदर्भ मैनुअल पेज की टिप्पणियों में पाए गए कई कोड नमूने से लगता है कि यह वास्तव में एक वैध HTTP हेडर है:

http://php.net/manual/en/function.header.php


RFC 1341 ( RFC 2045 द्वारा अप्रचलित के अनुसार):

एक सामग्री-अंतरण-एन्कोडिंग हेडर फ़ील्ड, जिसका उपयोग एक सहायक एन्कोडिंग को निर्दिष्ट करने के लिए किया जा सकता है जो डेटा पर लागू किया गया था ताकि इसे मेल ट्रांसपोर्ट तंत्रों के माध्यम से पारित किया जा सके जिसमें डेटा या वर्ण सेट सीमाएँ हो सकती हैं।

और बादमें:

कई सामग्री-प्रकार जिन्हें ईमेल के माध्यम से उपयोगी रूप से ले जाया जा सकता है, का प्रतिनिधित्व उनके "प्राकृतिक" प्रारूप में, 8-बिट चरित्र या बाइनरी डेटा के रूप में किया जाता है। इस तरह के डेटा को कुछ परिवहन प्रोटोकॉल पर प्रेषित नहीं किया जा सकता है। उदाहरण के लिए, RFC 821 मेल संदेशों को 7-बिट US-ASCII डेटा को 1000 वर्ण लाइनों के साथ प्रतिबंधित करता है।

इसलिए, इस तरह के डेटा को 7-बिट शॉर्ट-लाइन प्रारूप में पुन: एन्कोडिंग करने के लिए एक मानक तंत्र को परिभाषित करना आवश्यक है। (...) सामग्री-हस्तांतरण-एन्कोडिंग फ़ील्ड का उपयोग उस प्रकार के परिवर्तन को इंगित करने के लिए किया जाता है जिसका उपयोग परिवहन के लिए स्वीकार्य तरीके से शरीर का प्रतिनिधित्व करने के लिए किया गया है।

चूंकि आपके पास एक webservice है, जिसमें ईमेल के साथ कुछ भी सामान्य नहीं है, इसलिए आपको इस हेडर का उपयोग नहीं करना चाहिए।

आप Content-Encoding हेडर का उपयोग कर सकते हैं जो इंगित करता है कि हस्तांतरित डेटा को संकुचित कर दिया गया है (gzip मान)।

मुझे लगता है कि आपके मामले में

Content-Type: application/pdf

पर्याप्त है। इसके अतिरिक्त, आप Content-Length शीर्ष लेख सेट कर सकते हैं, लेकिन मेरी राय में, यदि आप वेबबेस (यह http सर्वर / प्रॉक्सी सर्वर नहीं है) Content-Type पर्याप्त है। कृपया ध्यान रखें कि कुछ विशिष्ट हेडर (जैसे Transfer-Encoding ) यदि उचित रूप से उपयोग नहीं किए जाते हैं, तो अनपेक्षित संचार समस्याओं का कारण हो सकता है, इसलिए यदि आप कुछ हेडर के उपयोग के बारे में 100% सुनिश्चित नहीं हैं - यदि आपको वास्तव में इसकी आवश्यकता है या नहीं - बस डॉन ' t इसका उपयोग करें।





mime