जवाबों:
सामग्री-लंबाई इकाई-हेडर फ़ील्ड इकाई-निकाय के आकार को इंगित करता है, OCTETs की दशमलव संख्या में, प्राप्तकर्ता को भेजा जाता है या, HEAD पद्धति के मामले में, इकाई-निकाय का आकार जो भेजा गया होता। अनुरोध एक GET रहा है।
इससे कोई फर्क नहीं पड़ता कि सामग्री-प्रकार क्या है।
नीचे पोस्ट पर विस्तार ।
यह अनुरोध या प्रतिक्रिया के शरीर में डेटा के बाइट्स की संख्या है। शरीर वह हिस्सा है जो हेडर के नीचे रिक्त रेखा के बाद आता है।
Content-Length
हैडर एक नंबर एक को संकेतित करते HTTP शरीर का सही बाइट लंबाई है। HTTP निकाय पहली खाली लाइन के तुरंत बाद शुरू होता है जो स्टार्ट-लाइन और हेडर के बाद मिलती है।
आमतौर पर Content-Length
हेडर का उपयोग HTTP 1.1 के लिए किया जाता है ताकि प्राप्त करने वाले पक्ष को पता चल जाए कि वर्तमान प्रतिक्रिया * समाप्त हो गई है, इसलिए कनेक्शन को दूसरे अनुरोध के लिए पुन: उपयोग किया जा सकता है ।
* या अनुरोध, उन तरीकों के मामले में जिनमें शरीर है, जैसे कि POST, PUT या PATCH
वैकल्पिक रूप से, Content-Length
हेडर को छोड़ा जा सकता है और एक कटा हुआ Transfer-Encoding
हेडर का उपयोग किया जा सकता है।
यदि दोनों Content-Length
और Transfer-Encoding
हेडर गायब हैं, तो प्रतिक्रिया के अंत में कनेक्शन बंद होना चाहिए।
निम्नलिखित संसाधन एक गाइड है जो मैंने HTTP के बारे में सीखते समय बहुत उपयोगी पाया:
एक ऑक्टेट 8 बिट्स है। सामग्री-लंबाई ओक्टेट्स की संख्या है जो संदेश शरीर का प्रतिनिधित्व करता है।
OCTET
यहाँ एक बहुत ही विशिष्ट अर्थ है जिसका अर्थ है <डेटा का कोई 8-बिट अनुक्रम>। परिभाषा w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2
यहाँ से :
सामग्री-लंबाई इकाई-हेडर फ़ील्ड इकाई-निकाय के आकार को इंगित करता है, OCTETs की दशमलव संख्या में, प्राप्तकर्ता को भेजा जाता है या, HEAD पद्धति के मामले में, इकाई-निकाय का आकार जो भेजा गया होता। अनुरोध एक GET रहा है।
Content-Length = "Content-Length" ":" 1*DIGIT
एक उदाहरण है
Content-Length: 3495
अनुप्रयोग SHOULD इस फ़ील्ड का उपयोग संदेश-निकाय की हस्तांतरण-लंबाई को इंगित करने के लिए करता है, जब तक कि यह खंड 4.4 में नियमों द्वारा निषिद्ध नहीं है ।
शून्य से अधिक या उसके बराबर कोई भी सामग्री-लंबाई एक मान्य मूल्य है। यदि सामग्री-लंबाई नहीं दी गई है तो धारा 4.4 संदेश-निकाय की लंबाई निर्धारित करने का तरीका बताती है।
ध्यान दें कि इस क्षेत्र का अर्थ MIME में संबंधित परिभाषा से काफी अलग है, जहां यह "संदेश / बाहरी-निकाय" सामग्री-प्रकार के भीतर उपयोग किया जाने वाला एक वैकल्पिक क्षेत्र है। HTTP में, यह भेजा जाना चाहिए जब भी संदेश की लंबाई को स्थानांतरित किए जाने से पहले निर्धारित किया जा सकता है, जब तक कि यह खंड 4.4 में नियमों द्वारा निषिद्ध न हो।
मेरी व्याख्या यह है कि इसका अर्थ है "तार पर" लंबाई, अर्थात * एन्कोडेड सामग्री की लंबाई
"Content-length": "3495"
से यह पेज
POST का अब तक का सबसे आम उपयोग, सीजीआई लिपियों में HTML फॉर्म डेटा जमा करना है। इस स्थिति में, सामग्री-प्रकार: शीर्षलेख आमतौर पर एप्लिकेशन / x-www-form-urlencoded है, और सामग्री-लंबाई: शीर्षलेख URL-एन्कोडेड प्रपत्र डेटा की लंबाई देता है (यहां URL-एन्कोडिंग पर एक नोट है)। CGI स्क्रिप्ट STDIN के माध्यम से संदेश निकाय प्राप्त करता है, और इसे डीकोड करता है। यहां POST का उपयोग करते हुए एक विशिष्ट फॉर्म सबमिट किया गया है:
POST /path/script.cgi HTTP/1.0 From: frog@jmarshall.com User-Agent: HTTPTool/1.0 Content-Type: application/x-www-form-urlencoded Content-Length: 32
युक्ति के अनुसार :
सामग्री-लंबाई इकाई-हेडर फ़ील्ड इकाई-निकाय के आकार को इंगित करता है, OCTETs की दशमलव संख्या में, प्राप्तकर्ता को भेजा जाता है या, HEAD पद्धति के मामले में, इकाई-निकाय का आकार जो भेजा गया होता। अनुरोध एक GET रहा है।
Content-Length = "Content-Length" ":" 1*DIGIT
एक उदाहरण है
Content-Length: 3495
अनुप्रयोग SHOULD इस फ़ील्ड का उपयोग संदेश-निकाय की हस्तांतरण-लंबाई को इंगित करने के लिए करता है, जब तक कि यह खंड 4.4 में नियमों द्वारा निषिद्ध नहीं है।
शून्य से अधिक या उसके बराबर कोई भी सामग्री-लंबाई एक मान्य मूल्य है। यदि सामग्री-लंबाई नहीं दी गई है तो धारा 4.4 संदेश-निकाय की लंबाई निर्धारित करने का तरीका बताती है।
ध्यान दें कि इस क्षेत्र का अर्थ MIME में संबंधित परिभाषा से काफी अलग है, जहां यह "संदेश / बाहरी-निकाय" सामग्री-प्रकार के भीतर उपयोग किया जाने वाला एक वैकल्पिक क्षेत्र है। HTTP में, यह भेजा जाना चाहिए जब भी संदेश की लंबाई को स्थानांतरित किए जाने से पहले निर्धारित किया जा सकता है, जब तक कि यह खंड 4.4 में नियमों द्वारा निषिद्ध न हो।
सामग्री-लंबाई इकाई-हेडर फ़ील्ड इकाई-निकाय के आकार को इंगित करता है, OCTETs की दशमलव संख्या में, प्राप्तकर्ता को भेजा जाता है या, HEAD पद्धति के मामले में, इकाई-निकाय का आकार जो भेजा गया होता। अनुरोध एक GET रहा है।
सामग्री-लंबाई = "सामग्री-लंबाई" ":" 1 * DIGIT
एक उदाहरण है
कंटेंट-लंबाई: 1024
संदेश-शरीर के स्थानांतरण-लंबाई को इंगित करने के लिए अनुप्रयोग SHOULD इस क्षेत्र का उपयोग करते हैं।
PHP में आप कुछ इस तरह का उपयोग करेंगे।
header("Content-Length: ".filesize($filename));
"सामग्री-प्रकार: अनुप्रयोग / x-www-form-urlencoded" के मामले में एन्कोडेड डेटा को नामित एजेंट को भेजा जाता है ताकि आप उस डेटा की लंबाई या आकार निर्धारित कर सकें जिस पर आप पोस्ट करने जा रहे हैं।
विचार करें कि क्या आपके पास हेडर हैं:
content-encoding: gzip
content-length: 52098
content-type: text/javascript; charset=UTF-8
सामग्री-लंबाई के आकार है संकुचित संदेश के मुख्य भाग, "ओक्टेट्स" (यानी 8 बिट है, जो होना होता है की इकाइयों में सभी आधुनिक कंप्यूटरों के लिए "बाइट") में।
वास्तविक संदेश निकाय का आकार कुछ और हो सकता है, शायद 150280 बाइट्स।
वर्णों की संख्या फिर से भिन्न हो सकती है, शायद 150231 वर्ण, क्योंकि कुछ यूनिकोड वर्ण एकाधिक बाइट्स का उपयोग करते हैं (ध्यान दें UTF-8 एक मानक एन्कोडिंग है)।
इसलिए, इस बात पर निर्भर करते हुए कि आप कितना डेटा ट्रांसमिट करते हैं, या कितना डेटा आयोजित किया जाता है, या कितने सिंबल देखे जाते हैं, इस पर निर्भर करता है। बेशक, इस बात की कोई गारंटी नहीं है कि ये हेडर प्रदान किए जाएंगे।