2013-03-03 9 views
8

हम Content-Range's items शीर्षलेख के साथ एक विश्वसनीय इंटरफ़ेस पर खाली संग्रह कैसे प्रबंधित कर सकते हैं?खाली संग्रह और HTTP शीर्षलेख सामग्री-श्रेणी

उदाहरण के लिए, 42 रिकॉर्ड होने पर, अनुरोध Range: items=0-41 सबकुछ वापस कर देगा, और प्रतिक्रिया हेडर होगा: Content-Range: items 0-41/42

हालांकि, कोई रिकॉर्ड नहीं होने पर हम Content-Range शीर्षलेख से कैसे निपट सकते हैं? किसी भी मदद के लिए धन्यवाद।

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

मेरा मतलब है, एक खाली संग्रह लौटने, सर्वर Content-Range: items x-y/0, वापस जाने के लिए चाहते हो सकता है जहां x और y एक मूल्य के जो से 0. लेकिन जो एक अलग होगा रहे हैं? मुझे लगता है कि यह एक चिपचिपा सवाल है, और कल्पना का जिक्र नहीं है।

उत्तर

5

वास्तव में सर्वर को Content-Range: */0 के साथ HTTP 416 अनुरोध संतुष्ट नहीं होना चाहिए।

+0

वास्तव में? संग्रह खाली होने पर एक पूरी तरह से अलग स्थिति कोड? परिणामस्वरूप एक खाली सरणी के साथ मैं स्थिति 200 की अपेक्षा करता हूं। 'सामग्री-रेंज: */0' हालांकि समझ में आता है। –

+0

इसमें कुछ और देख रहे हैं, मुझे लगता है कि 416 स्थिति का मतलब था जब अनुरोध में 'रेंज' हेडर शामिल होता है जो अमान्य सीमा निर्दिष्ट करता है। हालांकि अगर कोई सीमा निर्दिष्ट नहीं की गई थी, तो भी आप एक डिफ़ॉल्ट सीमा लागू करना चाहते हैं। व्यक्तिगत रूप से मुझे लगता है कि 416 बहुत असभ्य है भले ही एक सीमा निर्दिष्ट की गई हो। अगर मैं 'रेंज: 0-99' का अनुरोध करता हूं तो मैं सिर्फ 100 आइटमों का पहला' पृष्ठ 'प्राप्त करना चाहता हूं। वास्तव में कम होने पर कौन परवाह करता है? मैं इसे समझने के लिए प्रतिक्रिया शीर्षलेख पढ़ूंगा। लेकिन अगर यह स्थिति 416 लौटाता है तो हम मूल रूप से क्लाइंट को परिणामों की कुल संख्या का अनुरोध करने के लिए मजबूर करते हैं। इसका कोई मतलब नही बनता। –

+0

मुझे लगता है कि अगर लाइन की * प्रारंभ * सीमा से बाहर थी तो 416 समझ में आता है। लेकिन ग्राहकों को पहले कुल मिलाकर मजबूर करने के लिए ताकि वे कुल के भीतर रहने के लिए सीमा के * अंत * को समायोजित कर सकें, जिससे आप एक बहुत ही अनजान (और धीमी) एपीआई के साथ समाप्त हो जाते हैं। –

0

यदि आपको एक्स-वाई/0 के लिए गैर-शून्य संख्याएं मिल रही हैं - तो सर्वर से प्रतिक्रिया अमान्य (टूटी हुई) है। एक बग फाइल करें।

+1

ठीक है। तो अगर संग्रह खाली है तो सर्वर का जवाब क्या देना चाहिए? 'सामग्री-रेंज: 0-0/0' होने के कारण असंभव होगा, क्योंकि संग्रह के अंदर '0-0' का मतलब * 1 रिकॉर्ड * है। – Doug

+1

कोई सामग्री नहीं है, इसलिए आप एक सामग्री-श्रेणी शीर्षलेख वापस नहीं करेंगे। यदि आपको * होना चाहिए, तो स्पेस आपको उन मामलों में तारांकन ("*") वापस करने की अनुमति देता है जहां (आरएफसी से): "प्रतिक्रिया उत्पन्न होने पर इंस्टेंस-लंबाई अज्ञात है।" – Kylar

+0

* "कोई सामग्री नहीं है, इसलिए आप एक सामग्री-श्रेणी शीर्षलेख वापस नहीं करेंगे।" *, सुनिश्चित नहीं है कि यह समझ में आता है या नहीं। एक खाली संग्रह का अपवाद के रूप में क्यों व्यवहार करें (स्वीकृत उत्तर द्वारा सुझाए गए कोई श्रेणी शीर्षलेख और 416 स्थिति के साथ)? यह मेरे दिमाग में कोई समझ नहीं आता है। एक खाली संग्रह सामान्य है। इसका इलाज करने का कोई कारण नहीं है जैसे कि यह कुछ अजीब एज केस था। –

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