MIME टाइप वास्तवमा के हो
MIME टाइप, जसलाई मिडिया टाइप पनि भनिन्छ, एउटा छोटो लेबल हो जसले सफ्टवेयरलाई कुनै फाइल वा सन्देशको बडीमा कस्तो प्रकारको डेटा छ भनेर बताउँछ। यसको जन्म इमेलमा भएको हो (नामको अर्थ Multipurpose Internet Mail Extensions हो) तर आज यो वेबभरि सर्वत्र देखिन्छ। ढाँचा सधैं type/subtype हुन्छ: एउटा फराकिलो श्रेणी, स्ल्यास, र एउटा निश्चित ढाँचा। त्यसैले text/html को अर्थ "पाठ, HTML रूपमा", image/png को अर्थ "छवि, PNG रूपमा", र application/json को अर्थ "एप्लिकेसन डेटा, JSON मा एन्कोड गरिएको" हुन्छ।
माथिल्लो-तहको type IANA, आधिकारिक रजिस्ट्रीले राख्ने निश्चित सेटबाट आउँछ: text, image, audio, video, application, font, model, multipart, र haptics जस्ता केही नयाँ पनि। subtype निश्चित ढाँचा हो। विक्रेताहरूले vnd. उपसर्गसहित आफ्नै थप्न सक्छन् (उदाहरणका लागि application/vnd.ms-excel), र प्रयोगात्मक टाइपहरूले ऐतिहासिक रूपमा x- उपसर्ग प्रयोग गर्थे, यद्यपि त्यो परम्परालाई अहिले निरुत्साहित गरिएको छ।

MIME टाइप कहाँ महत्त्वपूर्ण छ
MIME टाइप देखा पर्ने सबैभन्दा महत्त्वपूर्ण ठाउँ HTTP Content-Type प्रतिक्रिया हेडर हो। सर्भरले कुनै पृष्ठ, छवि, वा API पेलोड पठाउँदा, यो हेडरले ब्राउजरलाई बाइटहरू कसरी व्याख्या गर्ने भनेर बताउँछ। हेडरमा text/html लेखिएको छ भने, ब्राउजरले मार्कअप रेन्डर गर्छ; application/json लेखिएको छ भने, fetch() कलले यसलाई पार्स गर्न सक्छ; application/pdf लेखिएको छ भने, अन्तर्निर्मित भ्युअर खुल्छ। उही हेडर अनुरोध पक्षमा पनि यात्रा गर्छ: तपाईंले फारम वा API बडी POST गर्दा, Content-Type ले सर्भरलाई तपाईंले पठाएको कुरा कसरी पढ्ने भनेर बताउँछ।
HTTP भन्दा बाहिर, MIME टाइपहरूले अन्य धेरै प्रणाली चलाउँछन्। इमेल क्लाइन्टहरूले संलग्नक हेर्नुपर्ने छवि हो कि सेभ गर्नुपर्ने बाइनरी हो भनेर निर्णय गर्न यिनको प्रयोग गर्छन्। फाइल-अपलोड ह्यान्डलरहरूले फाइल स्वीकार वा अस्वीकार गर्न घोषित टाइप जाँच गर्छन्। र अपरेटिङ सिस्टम वा ब्राउजरले, फाइल एक्सटेन्सन मात्र होइन, टाइप प्रयोग गरेर डिफल्ट एप्लिकेसन छान्छ। यही विचारले सर्भरहरूले HTTP स्थिति कोड सँगसँगै नतिजा र त्रुटिहरू कसरी रिपोर्ट गर्छन् भन्ने कुरालाई पनि आधार दिन्छ — गलत टाइपसहितको २०० प्रतिक्रिया ४०४ जत्तिकै बिग्रेको हुन सक्छ।
तपाईंले दैनिक प्रयोग गर्नेहरू
मुट्ठीभर टाइपहरूले वास्तविक ट्राफिकको ठूलो बहुमत समेट्छन्:
text/html— वेब पृष्ठहरू (एक्सटेन्सन.html)text/css— स्टाइलसिटहरू (.css)text/javascript— JavaScript का लागि सिफारिस गरिएको टाइप (.js,.mjs)application/json— एउटै आधिकारिक JSON टाइप, RFC 8259 मा परिभाषित (.json)image/png,image/jpeg,image/webp,image/svg+xml— सामान्य छवि ढाँचाहरूapplication/pdf— PDF कागजातहरू (.pdf)application/octet-stream— अज्ञात वा स्वेच्छाचारी बाइनरी डेटाका लागि क्याच-अलtext/plain— समृद्ध टाइप नभएको सादा पाठका लागि डिफल्ट
JSON ले एउटा टिप्पणी योग्य छ किनभने यसले मानिसहरूलाई भ्रमित पार्छ। एउटै सही टाइप application/json हो। पुरानो कोडले कहिलेकाहीं text/json, text/plain, वा application/x-javascript प्रयोग गर्थ्यो, तर ती अप्रचलित छन् र केही क्लाइन्टहरूले तिनलाई पार्स गर्न अस्वीकार गर्छन्। JSON का लागि कुनै charset प्यारामिटर पनि छैन — स्पेकले UTF-8 अनिवार्य गर्छ, त्यसैले application/json; charset=utf-8 लेख्नु अनावश्यक भए पनि हानिरहित छ। ढाँचा र एक्सटेन्सनको पूर्ण तालिकाका लागि, हाम्रो सन्दर्भ तालिकाहरू हेर्नुहोस्।

गलत Content-Type ले किन कुरा बिगार्छ
ब्राउजर र क्लाइन्टहरूले घोषित टाइपमा भरोसा गर्छन्, त्यसैले यसमा गल्ती हुनुको ठोस परिणाम हुन्छ। JSON API प्रतिक्रियालाई text/html को रूपमा सर्भ गर्नुहोस् र ब्राउजरले यसलाई रेन्डर गर्ने प्रयास गर्न सक्छ, वा कडा क्लाइन्टले तपाईंको कोड चल्नुअघि नै पार्स त्रुटि दिन सक्छ। CSS वा JavaScript फाइल गलत टाइपसँग सर्भ गर्नुहोस् र X-Content-Type-Options: nosniff भनिने सुरक्षा सुविधाले ब्राउजरलाई यो लागू गर्न अस्वीकार गराउँछ, जसले चुपचाप तपाईंको पृष्ठको स्टाइलिङ वा स्क्रिप्टहरू बिगार्छ।
डाउनलोडहरू अर्को क्लासिक असफलता हो। यदि तपाईं फाइल प्रदर्शन हुनुभन्दा डाउनलोड होस् भन्ने चाहनुहुन्छ भने, टाइप Content-Disposition हेडरसँगै महत्त्वपूर्ण हुन्छ। application/octet-stream को रूपमा पठाइएको PDF ले भ्युअरमा खुल्नुको सट्टा साधारण फाइलको रूपमा डाउनलोड हुन्छ; text/plain को रूपमा पठाइएको छविले अस्पष्ट अक्षरहरू देखाउँछ। अपलोड पक्षमा, गलत लेबल गरिएको फाइलले सरल एक्सटेन्सन जाँचलाई छल्न सक्छ, यही कारणले बलियो प्रमाणकर्ताहरूले क्लाइन्टले दिएको टाइपमा भरोसा गर्नुको सट्टा वास्तविक बाइट ("म्याजिक नम्बर") जाँच गर्छन्।
ऐतिहासिक रूपमा, हेडर गलत देखिएमा ब्राउजरहरूले वास्तविक टाइप अनुमान गर्ने, वा "स्निफ" गर्ने प्रयास गर्थे। त्यो व्यवहारले सुरक्षा प्वालहरू सिर्जना गर्यो, त्यसैले आधुनिक उत्तम अभ्यास भनेको सधैं सही Content-Type पठाउनु र nosniff सँग स्निफिङ असक्षम गर्नु हो। छोटो कुरा: हरेक प्रतिक्रियामा जानाजानी टाइप सेट गर्नुहोस्, र धेरैजसो रेन्डरिङ, डाउनलोड, र पार्सिङ बगहरू आफैं हराउँछन्।
बारम्बार सोधिने प्रश्नहरू
MIME टाइप र मिडिया टाइपबीच के फरक छ?
यी उही कुरा हुन्। "MIME टाइप" इमेलबाट आएको पुरानो नाम हो, जबकि "मिडिया टाइप" IANA र आधुनिक HTTP स्पेसिफिकेसनहरूले रुचाउने शब्द हो। दुवैले type/subtype लेबललाई जनाउँछन्।
JSON का लागि सही MIME टाइप के हो?
यो application/json हो, जुन RFC 8259 मा परिभाषित छ। text/json वा application/x-javascript जस्ता पुराना विकल्पहरू अप्रचलित छन् र केही क्लाइन्टहरूले तिनलाई अस्वीकार गर्छन्।
application/octet-stream को अर्थ के हो?
यो कुनै विशेष लेबल नभएको स्वेच्छाचारी बाइनरी डेटाका लागि सामान्य टाइप हो। सर्भरहरूले यसलाई अज्ञात फाइल टाइपका लागि ब्याकअपको रूपमा प्रयोग गर्छन्, जसले सामान्यतया ब्राउजरमै प्रदर्शनको सट्टा डाउनलोड ट्रिगर गर्छ।
मेरो CSS वा JavaScript फाइल किन लोड हुँदैन?
प्रायः सर्भरले यसलाई गलत Content-Type सँग पठाउँछ। X-Content-Type-Options लाई nosniff मा सेट गरेपछि, ब्राउजरले text/css नभएको CSS वा JavaScript टाइप नभएको स्क्रिप्ट लागू गर्न अस्वीकार गर्छ। सही टाइप पठाइने गरी सर्भर कन्फिगुरेसन ठीक गर्नुहोस्।
के म MIME टाइपमा charset थप्न सक्छु?
हो, टेक्स्ट ढाँचाका लागि, text/html; charset=utf-8 जस्तो प्यारामिटर प्रयोग गरेर। JSON का लागि यो अनावश्यक छ किनभने ढाँचा स्पेसिफिकेसनद्वारा सधैं UTF-8 हुन्छ, यद्यपि यो थप्दा कुनै हानि हुँदैन।
के फाइल एक्सटेन्सनले MIME टाइप निर्धारण गर्छ?
HTTP मार्फत होइन। सर्भरले कुन Content-Type पठाउने भनेर निर्णय गर्छ, र ब्राउजरले त्यो हेडरमा भरोसा गर्छ। स्पष्ट टाइप नदिइएमा मात्र एक्सटेन्सनले उपकरण र अपरेटिङ सिस्टमका लागि सङ्केतको रूपमा काम गर्छ।
