الأدوات
الأدلة

مرجع MIME / Content-Type

المراجع

جدول أنواع MIME الشائعة وامتدادات ملفاتها، مع بحث.

100% من جهة العميل بدون خادم خلفي
Content-Type الامتدادات الفئة الوصف
في هذه الصفحة

ما مرجع نوع MIME؟#

نوع MIME (ويُسمّى أيضًا نوع وسائط أو 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 لن يُحمَّل. هذه الصفحة بحث قابل للبحث كي تختار التسمية الصحيحة دائمًا.

كيف تستخدمها#

  1. ابحث بأيّ شيء. صندوق البحث يُرشِّح الجدول كله. ثلاث طرق للاستعلام:
    • اكتب امتداد ملفّ بنقطة بادئة — .jpg، .woff2، .mp4 — فتحصل بالضبط على الأنواع المُسندة إلى ذلك الامتداد.
    • اكتب النوع أو النوع الفرعيّ نفسه — image، json، svg — للتضييق بالاسم.
    • اكتب كلمةarchive، font، spreadsheet — للبحث في الأوصاف.
  2. اقرأ الصفّ. الأعمدة هي Content-Type (type/subtype الكاملة)، والامتدادات (لواحق الملفات الشائعة التي تُسند إليه)، والفئة (إحدى المجموعات العُليا السبع)، والوصف (ملاحظة سطر واحد عن غرض النوع).
  3. اختر الصحيح. لامتداد معيَّن يوجد عادةً نوع واحد أساسيّ؛ حيث يوجدان (حالة 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/javascriptjs، mjs — «نوع MIME الحديث القياسيّ.»
  • application/javascriptjs — «نوع MIME القديم لـ JavaScript (لا يزال منتشرًا).»

النسخة المختصرة: text/javascript هو ما تخبرك معايير HTML وFetch الحاليّة باستخدامه، وما تُرسله الخوادم الحديثة؛ وapplication/javascript هو اسم RFC 4329 الأقدم الذي ستراه لا يزال في ترويسات Content-Type القديمة والتوثيق القديم. كلاهما يعني الشيء نفسه وتعامله المتصفّحات بشكل مطابق — لكن لإعداد خادم جديد، فضّل text/javascript.

بضع عمليات بحث أخرى تستحقّ الحفظ، كلّها على بُعد بحث واحد:

  • .jsonapplication/json
  • .svgimage/svg+xml (إنّه صورة، لكنّ اللاحقة +xml تُعلِّمها كقائمة على XML)
  • .woff2font/woff2 (لاحظ الفئة العُليا المُخصَّصة font/، لا application/)
  • .wasmapplication/wasm (ثنائيّ WebAssembly — يجب أن يُخدَم بالضبط هكذا، بلا charset، وإلّا فلن يُترجم)
  • .pdfapplication/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 يُظهره في البيانات الوصفية للرفع أو الكائن. الاستدعاء المحدَّد يختلف لكلّ حزمة؛ الشيء الوحيد الذي يجب أن يكون صحيحًا هو السلسلة النهائية على السلك، وهو بالضبط ما يُعطيك إيّاه هذا البحث.