वीडियो और उपशीर्षक · डायरेक्ट मीडिया डाउनलोडर
MIME प्रकार और सामग्री-प्रकार: वेब डाउनलोड के लिए मीडिया फ़ाइलों को कैसे लेबल करता है
· पेजभूमि
http मिडिया वेब-मूल बातें
एक्सटेंशन एक फ़ाइल नाम परंपरा है; MIME प्रकार सर्वर ब्राउज़रों को बताते हैं कि फ़ाइल क्या है। यह पोस्ट बताती है कि MIME प्रकार कहां से आए, सामग्री-प्रकार एक डाउनलोड को कैसे आकार देता है और जब दोनों असहमत होते हैं तो क्या होता है।
फ़ाइल को .mp4 कहा जाता है लेकिन ब्राउज़र इसे टेक्स्ट के रूप में मानता है - MIME प्रकार के बेमेल को रोकने के लिए डिज़ाइन किया गया था
`.mp4` को समाप्त करने वाले पथ को पाठ के रूप में प्रस्तुत किया जा सकता है, जबकि बिना प्रत्यय वाले पथ में वैध वीडियो हो सकता है। एक्सटेंशन नामों से संबंधित हैं; HTTP सामग्री-प्रकार प्रतिक्रिया मेटाडेटा से संबंधित है।
डायरेक्ट मीडिया डाउनलोडर उस हेडर को HEAD के दौरान पढ़ता है जब CORS उसे उजागर करता है और फिर GET से। यह मान प्रदर्शित करता है, इसे ब्लॉब प्रकार के रूप में उपयोग करता है, और मीडिया-दिखने वाले मानों को अवरुद्ध प्रमाणपत्र के बजाय सलाह के रूप में मानता है। इसलिए एक गलत हेडर किसी भी खिलाड़ी के पेलोड की जांच करने से पहले व्यवहार को बदल सकता है, खासकर जब प्रतिक्रिया अन्यथा इनलाइन दिखाई जाएगी। किसी भी खिलाड़ी द्वारा बॉडी का निरीक्षण करने से पहले एक गलत लेबल हैंडलिंग को प्रभावित कर सकता है, खासकर जब ब्राउज़र अन्यथा मीडिया इनलाइन प्रस्तुत करेगा।
ईमेल अटैचमेंट से लेकर HTTP तक - कैसे MIME प्रकार ईमेल भागों को लेबल करने के तरीके के रूप में शुरू हुए और वेब की फ़ाइल-लेबलिंग प्रणाली बन गए
MIME संदेश भागों को लेबल करने के लिए एक प्रणाली के रूप में शुरू हुआ और प्रतिनिधित्व के लिए HTTP द्वारा उपयोग की जाने वाली शब्दावली बन गई। एक मीडिया प्रकार में एक शीर्ष-स्तरीय प्रकार और उपप्रकार होता है, जिसके बाद वैकल्पिक रूप से पैरामीटर आते हैं।
लेबल ब्राउज़र को हैंडलिंग चुनने में मदद करता है, लेकिन भेजने वाला सर्वर इसे नियंत्रित करता है। खराब मेटाडेटा वाला स्टोरेज बकेट अनुपयोगी सामान्य मूल्य के तहत सही बाइट्स प्रदान कर सकता है। HTTP ने रजिस्ट्री को अपनाया क्योंकि फ़ाइल नामों या गैर-दस्तावेजी बाइट अनुमानों से अर्थ निकालने वाले प्रत्येक क्लाइंट के लिए इंटरऑपरेबल लेबल बेहतर होते हैं। साझा पंजीकरण ने असंगत निजी नामकरण परंपराओं को उन लेबलों से बदल दिया जिनकी मेल और वेब क्लाइंट लगातार व्याख्या कर सकते हैं।
सामग्री-प्रकार हेडर पढ़ना - प्रकार, उपप्रकार और पैरामीटर, सामान्य मामलों के रूप में video/mp4, ऑडियो/mpeg और एप्लिकेशन/octet-stream के साथ
`video/mp4` एक MP4 मीडिया प्रतिनिधित्व का वर्णन करता है, `audio/mpeg` MPEG ऑडियो का वर्णन करता है, और `application/octet-stream` एक सामान्य बाइनरी लेबल है। एक चारसेट पैरामीटर टेक्स्ट के लिए सामान्य है लेकिन मीडिया कोडेक की पहचान नहीं करता है।
ToolAcre संपूर्ण हेडर स्ट्रिंग को सुरक्षित रखता है। इसकी `looksLikeMedia` सलाह वीडियो, ऑडियो और MPEGURL लेबल को पहचानती है; एक ऑक्टेट स्ट्रीम स्वचालित अस्वीकृति के बिना सावधानी बरतती है। पैरामीटर्स की व्याख्या मीडिया प्रकार के विनिर्देश के तहत की जानी चाहिए; उनकी मात्र उपस्थिति एक शीर्ष-स्तरीय प्रकार को दूसरे में परिवर्तित नहीं करती है। पैरामीटर्स को लागू प्रकार की परिभाषा के अंतर्गत पढ़ा जाना चाहिए; उनकी उपस्थिति एक द्विआधारी प्रतिक्रिया को एक अलग शीर्ष-स्तरीय परिवार में नहीं बदलती है।
सूँघना और इसकी सीमाएँ - ब्राउज़र कभी-कभी अनुमान क्यों लगाते हैं और अनुमान गलत या जानबूझकर अक्षम क्यों किया जा सकता है
मेटाडेटा अनुपलब्ध या अस्पष्ट होने पर ब्राउज़र कभी-कभी बाइट्स का निरीक्षण करते हैं, लेकिन सुरक्षा और स्थिरता के लिए सूँघना प्रतिबंधित है। एक सर्वर कुछ अनुमान लगाने को अक्षम कर सकता है, और व्यवहार संदर्भ के अनुसार भिन्न होता है।
डाउनलोडर अपना स्वयं का हस्ताक्षर स्कैनर लागू नहीं करता है। कोडेक्स की जांच करने के बाद यह न तो कंटेनर खोलता है और न ही घोषित MIME को ओवरराइड करता है, इसलिए यह दावा करने से बचें कि यह होस्ट मेटाडेटा को सही करता है। `X-Content-Type-Options: nosniff` जैसे सुरक्षा हेडर जानबूझकर अनुमान लगाने में बाधा डाल सकते हैं, सटीक सर्वर कॉन्फ़िगरेशन पर अधिक जिम्मेदारी डाल सकते हैं। `nosniff` प्रतिक्रिया जानबूझकर अनुमान लगाना कम कर सकती है, जिससे ग्राहक की मरम्मत को आमंत्रित करने के बजाय सही मूल मेटाडेटा अधिक महत्वपूर्ण हो जाता है।
एक्सटेंशन बनाम MIME प्रकार - जिस पर खिलाड़ी, ऑपरेटिंग सिस्टम और ब्राउज़र टूल वास्तव में भरोसा करते हैं
खिलाड़ी और ऑपरेटिंग सिस्टम एक्सटेंशन, MIME, बाइट हस्ताक्षर और विभिन्न क्रम में उपलब्ध कोडेक्स पर विचार कर सकते हैं। कोई भी लेबल सार्वभौमिक रूप से सभी उपभोक्ताओं पर जीत हासिल नहीं करता है।
ToolAcre का फ़ॉलबैक फ़ाइल नाम केवल तभी सामग्री-प्रकार का उपयोग करता है जब सामग्री-विस्थापन और अंतिम पथ खंड अनुपस्थित होते हैं। यह वहां WebM और MP4 को पहचानता है; अन्यथा सामान्य नाम `.bin` पर समाप्त होता है। एक संग्रह वर्कफ़्लो में दोनों लेबलों को रिकॉर्ड किया जाना चाहिए क्योंकि असहमति एक को दूसरे के साथ चुपचाप अधिलेखित करने के कारण के बजाय नैदानिक साक्ष्य है। जब दोनों मान असहमत हों तो उन्हें संग्रहित करें क्योंकि वह बेमेल डिलीवरी कॉन्फ़िगरेशन के बारे में उपयोगी नैदानिक साक्ष्य है।
कार्यान्वित उदाहरण: एक स्टोरेज बकेट को ठीक करना जो सब कुछ ऑक्टेट-स्ट्रीम के रूप में कार्य करता है - डाउनलोड और सहेजी गई फ़ाइल के लिए क्या परिवर्तन होता है
यदि स्टोरेज बकेट प्रत्येक ऑब्जेक्ट को ऑक्टेट-स्ट्रीम के रूप में कार्य करता है, तो स्रोत पर मेटाडेटा अपडेट करें। वही अधिकृत फ़ाइल बाद के अनुरोधों पर एक स्पष्ट जांच पंक्ति और सही ढंग से टाइप किया गया ब्लॉब उत्पन्न कर सकती है।
मौजूदा पथ या सामग्री-विस्थापन नाम अपरिवर्तित रह सकता है क्योंकि फ़ाइल नाम की प्राथमिकता अलग है। MIME हेडर को ठीक करने से बाइट्स को ट्रांसकोड नहीं किया जाता है या पहले से कहीं और आपूर्ति किए गए भ्रामक एक्सटेंशन की मरम्मत नहीं की जाती है। मेटाडेटा प्रसार के बाद अनुरोध को दोहराएं और वास्तविक प्रतिक्रिया की पुष्टि करें, क्योंकि स्टोरेज कंसोल फ़ील्ड को बदलने से यह साबित नहीं होता है कि प्रत्येक CDN कैश अब इसकी सेवा करता है। बकेट मेटाडेटा बदलने के बाद, नियंत्रण-पैनल सेव पुष्टिकरण पर भरोसा करने के बजाय कैश प्रसार के बाद उत्पादन प्रतिक्रिया को सत्यापित करें।
इसमें क्या शामिल नहीं है - फ़ाइल के अंदर कंटेनर और कोडेक, जिसकी कोई हेडर गारंटी नहीं दे सकता
सामग्री-प्रकार कंटेनर की वैधता, कोडेक्स, अवधि, अखंडता, सुरक्षा या खेलने की क्षमता की गारंटी नहीं दे सकता है। एक सर्वर गलती से या जानबूझकर झूठ बोल सकता है, और स्थानांतरण वादा की गई अवधि से पहले समाप्त हो सकता है।
कंटेनर और कोडेक प्रश्नों के लिए विश्वसनीय निरीक्षण सॉफ़्टवेयर का उपयोग करें। डाउनलोडर का काम प्राप्त बॉडी को संरक्षित करने और उसके द्वारा देखे गए सर्वर लेबल को उजागर करने के साथ समाप्त होता है। चेकसम और विशेष जांच सटीक बाइट्स के बारे में विश्वास बढ़ा सकते हैं, लेकिन इस फ़ाइल-सेविंग इंटरफ़ेस द्वारा कोई भी कार्यान्वित नहीं किया जाता है। चेकसम और कंटेनर जांच अतिरिक्त तथ्य स्थापित कर सकते हैं, लेकिन कोई भी फ़ंक्शन इस केंद्रित डाउनलोडर इंटरफ़ेस से संबंधित नहीं है। इसलिए एक परिचित लेबल को जांच को समाप्त किए बिना उसका मार्गदर्शन करना चाहिए।
टेकअवे: लेबल मायने रखते हैं - डायरेक्ट लिंक का कंटेंट-प्रकार डायरेक्ट मीडिया डाउनलोडर द्वारा सहेजे गए चीज़ों को कैसे आकार देता है
लेबल हैंडलिंग, चेतावनियों और फ़ॉलबैक नामकरण को आकार देते हैं, इसलिए वे सबूत नहीं होने पर भी मायने रखते हैं। साक्ष्य के अलग-अलग हिस्सों के रूप में हेडर, फ़ाइल नाम, ज्ञात स्रोत, बाइट गिनती और प्लेबैक की तुलना करें।
डायरेक्ट मीडिया डाउनलोडर अनुपस्थित प्रकार को "सर्वर द्वारा नहीं बताया गया" के रूप में रिपोर्ट करता है और ब्लॉब फ़ॉलबैक से परे एक का आविष्कार करने से बचता है। यह संयम उस व्यक्ति को ग़लत कॉन्फ़िगरेशन दिखाई देता है जो मेज़बान को ठीक कर सकता है। होस्ट मालिकों के लिए, डाउनलोड के बाद प्रत्येक विज़िटर को लेबल की मरम्मत करने की आवश्यकता के बजाय अपलोड समय पर मेटाडेटा को सही करने से प्रत्येक ब्राउज़र और क्लाइंट को लाभ होता है। बाद में दी गई प्रतिक्रिया को दोबारा जांचें।