2009-04-04 25 views
59

HTTP हेडर सामग्री-रेंज और रेंज के बीच क्या अंतर है? प्रत्येक का इस्तेमाल कब किया जाना चाहिए?सामग्री-रेंज और रेंज हेडर के बीच अंतर?

मैं किसी विशेष बाइट ऑफसेट से ऑडियो फ़ाइल स्ट्रीम करने की कोशिश कर रहा हूं। क्या मुझे सामग्री-रेंज या रेंज हेडर का उपयोग करना चाहिए?

धन्यवाद

उत्तर

67

Range अनुरोध में प्रयोग किया जाता है, बाइट्स की किसी विशेष श्रृंखला (या श्रेणियों) के लिए पूछने के लिए। प्रतिक्रिया में Content-Range का उपयोग किया जाता है, यह इंगित करने के लिए कि कौन सा बाइट सर्वर आपको दे रहा है (जो आपके द्वारा अनुरोधित सीमा से भिन्न हो सकता है), साथ ही साथ पूरी सामग्री कितनी देर तक (यदि ज्ञात हो)।

+7

नीचे btimby उत्तर पढ़ें। –

+2

@ ब्रूनोमार्टिनेज जब आप अनुरोध में सामग्री-श्रेणी का उपयोग कर सकते हैं, तो यह सवाल से स्पष्ट था कि ओपी एक विशेष सीमा के साथ सामग्री डाउनलोड करने के बारे में पूछ रहा था। मैं ओपी पूछ रहा था कि प्रत्येक मामले का व्यापक विवरण देने की कोशिश नहीं कर रहा था, जिसमें सामग्री-रेंज का उपयोग किया जा सकता था। –

+3

@BrianCampbell आप निश्चित रूप से सही हैं। मैं बस वंशावली के लिए अपने निष्कर्ष रिकॉर्ड करना चाहता था। मैंने यह सुनिश्चित करने के लिए अपना जवाब संपादित किया कि यह इंप्रेशन नहीं देता है कि आपका उत्तर किसी भी तरह गलत है। – btimby

113

वास्तव में, स्वीकृत उत्तर पूरा नहीं हुआ है। सामग्री-रेंज न केवल प्रतिक्रियाओं में उपयोग की जाती है। यह उन अनुरोधों में भी कानूनी है जो एक इकाई निकाय प्रदान करते हैं।

उदाहरण के लिए, एक HTTP PUT एक इकाई निकाय प्रदान करता है, यह केवल एक इकाई का एक हिस्सा प्रदान कर सकता है। इस प्रकार PUT अनुरोध में एक सामग्री-रेंज हेडर शामिल हो सकता है जो सर्वर को इंगित करता है जहां आंशिक इकाई निकाय को इकाई में विलय किया जाना चाहिए।

उदाहरण के लिए, पहले बना सकते हैं और उसके बाद HTTP का उपयोग कर एक फ़ाइल को संलग्न:

अनुरोध 1:

PUT /file HTTP/1.1 
Host: server 
Content-Length: 1 

a 

अनुरोध 2:

PUT /file HTTP/1.1 
Host: server 
Content-Range: 1-2/* 
Content-Length: 1 

a 

कैसे, चलो फ़ाइल की सामग्री देखते हैं ...

अनुरोध 3:

GET /file HTTP/1.1 
Host: server 

HTTP/1.1 200 OK 
Content-Length: 2 

aa 

यह रीडिंग और HTTP पर लिखने दोनों यादृच्छिक फ़ाइल पहुंच की अनुमति देता है। मैं सिर्फ स्पष्टीकरण देना चाहता था, क्योंकि मैं एक वेबएडीवी क्लाइंट में सामग्री-रेंज के उपयोग की खोज कर रहा था, इसलिए शायद यह विस्तारित जानकारी किसी और के लिए उपयोगी साबित होगी।

+6

सामग्री-रेंज अनुरोधों में कानूनी नहीं है। –

+10

वह टिप्पणी गलत है। आरएफसी 2616 (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.16) अनुरोधों के लिए 'सामग्री-श्रेणी' शीर्षलेख को सीमित नहीं करता है, लेकिन इसे "आंशिक इकाई-शरीर" से जोड़ता है । अपलोड रीज्यूम या चंक अपलोड अपलोड करने के लिए सुविधा का उपयोग करना वास्तव में बहुत आम है। – Hank

+1

मार्क की टिप्पणी सही है। देखें: http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-23, खंड 4.3.4। – grzes

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