MIME / Content-Type संदर्भ
संदर्भसामान्य MIME प्रकार और उनके फ़ाइल एक्सटेंशन की खोज योग्य तालिका।
| Content-Type | एक्सटेंशन | श्रेणी | विवरण |
|---|
इस पृष्ठ पर
MIME प्रकार संदर्भ क्या है?#
एक MIME प्रकार (जिसे media type या Content-Type भी कहते हैं) वह छोटा लेबल है जो प्राप्तकर्ता को बताता है कि किसी दस्तावेज़ में किस प्रकार के बाइट हैं: text/html एक वेब पृष्ठ है, application/json JSON डेटा है, image/png एक PNG चित्र है। प्रारूप हमेशा type/subtype होता है — एक व्यापक श्रेणी, एक स्लैश, फिर एक विशिष्ट नाम। HTTP इन लेबल पर निर्भर करता है तय करने हेतु कि प्रतिक्रिया रेंडर करनी, डाउनलोड करनी, पार्स करनी, या अस्वीकार करनी है; ब्राउज़र उन पर सही हैंडलर चुनने हेतु निर्भर करते हैं (एक <img> छवि प्रकार अपेक्षा करता है, एक <script> JavaScript प्रकार अपेक्षा करता है); ईमेल फ़ाइलें संलग्न करने हेतु उन पर निर्भर करता है।
प्रारूप सरल दिखता है, लेकिन परिदृश्य वास्तव में भ्रमित करने वाला है। सात शीर्ष-स्तरीय श्रेणियाँ हैं (application, audio, font, image, model, text, video), कई फ़ाइलें कई एक्सटेंशन से मेल खाती हैं (.jpg, .jpeg, .jpe सभी image/jpeg हैं), कुछ प्रकारों का पुराना और आधुनिक रूप है (application/javascript बनाम text/javascript), और गलत चुनने से वास्तविक बग आते हैं — text/plain के रूप में सेवा की गई स्टाइलशीट लागू नहीं होगी, application/octet-stream के रूप में सेवा की गई फ़ॉन्ट लोड नहीं होगी। यह पृष्ठ एक खोज योग्य लुकअप है ताकि आप हमेशा सही लेबल चुनें।
इसका उपयोग कैसे करें#
- किसी से भी खोजें। खोजें बॉक्स पूरी तालिका फ़िल्टर करता है। तीन तरीके:
- आगे बिंदु वाला कोई फ़ाइल एक्सटेंशन टाइप करें —
.jpg,.woff2,.mp4— और आपको ठीक वे प्रकार मिलते हैं जो उस एक्सटेंशन पर मैप होते हैं। - स्वयं प्रकार या उपप्रकार टाइप करें —
image,json,svg— नाम से संकरा करने हेतु। - कोई शब्द टाइप करें —
archive,font,spreadsheet— विवरण में खोजने हेतु।
- आगे बिंदु वाला कोई फ़ाइल एक्सटेंशन टाइप करें —
- पंक्ति पढ़ें। कॉलम हैं Content-Type (पूरा
type/subtype), एक्सटेंशन (सामान्य फ़ाइल प्रत्यय जो इस पर मैप होते हैं), श्रेणी (सात शीर्ष-स्तरीय समूहों में से एक), और विवरण (एक पंक्ति का नोट कि वह प्रकार किस हेतु है)। - सही चुनें। किसी दिए एक्सटेंशन हेतु आमतौर पर एक विहित प्रकार होता है; जहाँ दो हों (JavaScript का मामला क्लासिक है), विवरण समझाता है कि कौन-सा वर्तमान है।
मुख्य विशेषताएँ#
- सात श्रेणियाँ, एक तालिका। Application, audio, font, image, model, text, और video प्रकार सभी एक साथ रहते हैं, इसलिए आप एक फ़ॉन्ट प्रश्न से वीडियो प्रश्न तक बिना पृष्ठ बदले कूद सकते हैं।
- एक्सटेंशन-प्रथम लुकअप। सामान्य वास्तविक-विश्व कार्य है “मेरे पास एक
.xlsxफ़ाइल है, Content-Type क्या सेट करूँ?” —.xlsxटाइप करना सीधेapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetपर लैंड करता है। - आधुनिक और विरासत दोनों नाम। जहाँ किसी प्रकार का पुराना रूप अभी भी जंगली में दिखता है, दोनों एक नोट के साथ सूचीबद्ध हैं, ताकि आप किसी HTTP हेडर की दोनों दिशाएँ पहचान सकें।
- विक्रेता प्रकार सम्मिलित। Microsoft Office, ZIP, gzip, 7z, RAR, WebAssembly, Web App Manifest, GraphQL — लंबे
application/vnd.*औरapplication/*+json/application/*+xmlरूप सभी यहाँ हैं। - स्थानीय और तत्काल। डेटासेट पृष्ठ में एम्बेडेड; हर खोज एक क्लाइंट-साइड फ़िल्टर है, कोई अनुरोध नहीं।
विस्तृत उदाहरण#
JavaScript सबसे भ्रमित करने वाली प्रविष्टि है, क्योंकि प्रकार ने वर्षों में नाम बदले हैं और सर्वर अभी भी दोनों भेजते हैं। javascript खोजें और आपको दो पंक्तियाँ मिलती हैं:
text/javascript—js,mjs— “मानक, आधुनिक MIME प्रकार।”application/javascript—js— “विरासत JavaScript MIME प्रकार (अभी भी व्यापक रूप से दिखता है)।”
संक्षिप्त संस्करण: text/javascript वह है जो वर्तमान HTML और Fetch मानक आपको उपयोग करने के लिए कहते हैं, और जो आधुनिक सर्वर उत्सर्जित करते हैं; application/javascript पुराना RFC 4329 नाम है जो आपको अभी भी पुराने Content-Type हेडर और पुराने प्रलेखन में मिलेगा। दोनों का अर्थ एक ही है और ब्राउज़र इन्हें समान रूप से व्यवहार करते हैं — पर नए सर्वर विन्यास हेतु, text/javascript को प्राथमिकता दें।
कुछ और लुकअप याद रखने योग्य, सभी एक खोज दूर:
.json→application/json.svg→image/svg+xml(यह एक छवि है, लेकिन+xmlप्रत्यय इसे XML-आधारित चिह्नित करता है).woff2→font/woff2(समर्पितfont/शीर्ष-स्तरीय श्रेणी नोट करें,application/नहीं).wasm→application/wasm(WebAssembly बाइनरी — इसे ठीक ऐसे सेवा करना चाहिए, कोई charset नहीं, या संकलित नहीं होगा).pdf→application/pdf
जब कोई प्रकार अज्ञात हो, सर्वर application/octet-stream पर वापसी करते हैं — सामान्य “यह कुछ बाइनरी डेटा है, कुछ भी मान न लें” प्रकार। ब्राउज़र आमतौर पर प्रदर्शित करने का प्रयास करने के बजाय फ़ाइल डाउनलोड करके प्रतिक्रिया देते हैं।
अक्सर पूछे जाने वाले प्रश्न#
text/javascript या application/javascript — कौन-सा उपयोग करूँ?#
नए कोड हेतु, text/javascript भेजें। यह वह है जो वर्तमान WHATWG HTML और Fetch विनिर्देशों की माँग है, और जो ब्राउज़र वास्तव में चेक करते हैं जब तय करते हैं कि कोई <script> निष्पादित करना है या नहीं। application/javascript हर जगह काम करता है (यह पुराना मानक है), लेकिन विरासत रूप है। यदि आप कोई नया सर्वर, mime डेटाबेस, या बिल्ड टूल विन्यस्त कर रहे हैं, तो text/javascript डिफ़ॉल्ट रूप से चुनें।
SVG के प्रकार में +xml क्यों है?#
+xml प्रत्यय एक संरचित-सिंटैक्स प्रत्यय है: यह बताता है कि प्रकार की क्रमानुसारण के नीचे XML है। इसलिए image/svg+xml का अर्थ है “एक छवि, विशेष रूप से एक जो XML में वर्णित है”। वही परंपरा application/ld+json (लिंक्ड डेटा, JSON के रूप में क्रमानुसारित) और application/graphql+json में दिखती है। प्रत्यय समझने वाले टूल किसी सामान्य XML या JSON पार्सर पर वापसी कर सकते हैं।
application/octet-stream किस हेतु है?#
यह “मनमाना बाइनरी डेटा, अज्ञात प्रकार” हेतु कैच-ऑल है। सर्वर इसे लौटाते हैं जब वे किसी फ़ाइल की पहचान नहीं कर पाते, और सुरक्षित क्लाइंट व्यवहार इसे रेंडर या निष्पादित करने का प्रयास करने के बजाय डाउनलोड करना है। यदि आप कभी ऐसी फ़ाइल देखें जिसे आप ब्राउज़र में खुलने की उम्मीद कर रहे थे वह डाउनलोड होने लगे, तो गलत या छूटा हुआ Content-Type (octet-stream में सिकुड़ता) सामान्य कारण है।
मैं अपनी फ़ाइलों पर Content-Type वास्तव में कैसे सेट करूँ?#
यह इस बात पर निर्भर है कि फ़ाइल कहाँ से सेवा होती है — एक स्टैटिक फ़ाइल सर्वर इसे mime डेटाबेस के माध्यम से एक्सटेंशन से पढ़ता है, एक वेब फ़्रेमवर्क इसे कोड में सेट करता है (अक्सर response.setContentType(...) या कोई हेडर असाइनमेंट), और एक CDN इसे अपलोड या ऑब्जेक्ट मेटाडेटा में उजागर करता है। सटीक कॉल प्रति-स्टैक भिन्न होती है; जो बात सही होनी चाहिए वह तार पर अंतिम स्ट्रिंग है, जो कि ठीक वही है जो यह लुकअप देता है।