با توجه به اینکه اینترنت میزبان هزاران نوع داده مختلف است، پروتکل HTTP به دقت هر شیء را که از طریق وب منتقل میشود با یک برچسب فرمت داده به نام MIME type برچسبگذاری میکند. MIME (Multipurpose Internet Mail Extensions) در ابتدا برای حل مشکلات جابجایی پیامها بین سیستمهای مختلف پست الکترونیکی طراحی شده بود. MIME به قدری برای ایمیلها خوب عمل کرد که HTTP نیز آن را برای توصیف و برچسبگذاری محتوای چندرسانهای خود پذیرفت.
عملکرد MIME Types در HTTP
سرورهای وب یک MIME type را به همه دادههای شیء HTTP پیوست میکنند. هنگامی که یک مرورگر وب یک شیء را از یک سرور دریافت میکند، به MIME type مربوطه نگاه میکند تا ببیند آیا میداند چگونه با آن شیء کار کند یا خیر. اکثر مرورگرها میتوانند صدها نوع شیء محبوب را مدیریت کنند: نمایش فایلهای تصویری، تجزیه و قالببندی فایلهای HTML، پخش فایلهای صوتی از طریق بلندگوهای کامپیوتر یا اجرای نرمافزارهای خارجی (plug-in) برای مدیریت فرمتهای خاص.
ساختار MIME Types
MIME type یک برچسب متنی است که به صورت یک نوع شیء اصلی و یک زیرنوع خاص، با یک اسلش جدا شده، نمایش داده میشود. برای مثال:
- یک سند متنی با فرمت HTML با نوع
text/html
برچسبگذاری میشود. - یک سند متنی ASCII ساده با نوع
text/plain
برچسبگذاری میشود. - یک تصویر با فرمت JPEG با نوع
image/jpeg
برچسبگذاری میشود. - یک تصویر با فرمت GIF با نوع
image/gif
برچسبگذاری میشود. - یک فیلم با فرمت Apple QuickTime با نوع
video/quicktime
برچسبگذاری میشود. - یک ارائه مایکروسافت پاورپوینت با نوع
application/vnd.ms-powerpoint
برچسبگذاری میشود.
صدها MIME type محبوب وجود دارند و بسیاری از انواع تجربی یا با استفاده محدود نیز موجود هستند. یک لیست بسیار کامل از MIME types این لینک ارائه شده است.
Extension | Kind of document | MIME Type |
---|---|---|
.aac | AAC audio | audio/aac |
.abw | AbiWord document | application/x-abiword |
.apng | Animated Portable Network Graphics (APNG) image | image/apng |
.arc | Archive document (multiple files embedded) | application/x-freearc |
.avif | AVIF image | image/avif |
.avi | AVI: Audio Video Interleave | video/x-msvideo |
.azw | Amazon Kindle eBook format | application/vnd.amazon.ebook |
.bin | Any kind of binary data | application/octet-stream |
.bmp | Windows OS/2 Bitmap Graphics | image/bmp |
.bz | BZip archive | application/x-bzip |
.bz2 | BZip2 archive | application/x-bzip2 |
.cda | CD audio | application/x-cdf |
.csh | C-Shell script | application/x-csh |
.css | Cascading Style Sheets (CSS) | text/css |
.csv | Comma-separated values (CSV) | text/csv |
.doc | Microsoft Word | application/msword |
.docx | Microsoft Word (OpenXML) | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
.eot | MS Embedded OpenType fonts | application/vnd.ms-fontobject |
.epub | Electronic publication (EPUB) | application/epub+zip |
.gz | GZip Compressed Archive | application/gzip |
.gif | Graphics Interchange Format (GIF) | image/gif |
.htm , .html | HyperText Markup Language (HTML) | text/html |
.ico | Icon format | image/vnd.microsoft.icon |
.ics | iCalendar format | text/calendar |
.jar | Java Archive (JAR) | application/java-archive |
.jpeg , .jpg | JPEG images | image/jpeg |
.js | JavaScript | text/javascript (Specifications: HTML and RFC 9239) |
.json | JSON format | application/json |
.jsonld | JSON-LD format | application/ld+json |
.mid , .midi | Musical Instrument Digital Interface (MIDI) | audio/midi , audio/x-midi |
.mjs | JavaScript module | text/javascript |
.mp3 | MP3 audio | audio/mpeg |
.mp4 | MP4 video | video/mp4 |
.mpeg | MPEG Video | video/mpeg |
.mpkg | Apple Installer Package | application/vnd.apple.installer+xml |
.odp | OpenDocument presentation document | application/vnd.oasis.opendocument.presentation |
.ods | OpenDocument spreadsheet document | application/vnd.oasis.opendocument.spreadsheet |
.odt | OpenDocument text document | application/vnd.oasis.opendocument.text |
.oga | Ogg audio | audio/ogg |
.ogv | Ogg video | video/ogg |
.ogx | Ogg | application/ogg |
.opus | Opus audio in Ogg container | audio/ogg |
.otf | OpenType font | font/otf |
.png | Portable Network Graphics | image/png |
.pdf | Adobe Portable Document Format (PDF) | application/pdf |
.php | Hypertext Preprocessor (Personal Home Page) | application/x-httpd-php |
.ppt | Microsoft PowerPoint | application/vnd.ms-powerpoint |
.pptx | Microsoft PowerPoint (OpenXML) | application/vnd.openxmlformats-officedocument.presentationml.presentation |
.rar | RAR archive | application/vnd.rar |
.rtf | Rich Text Format (RTF) | application/rtf |
.sh | Bourne shell script | application/x-sh |
.svg | Scalable Vector Graphics (SVG) | image/svg+xml |
.tar | Tape Archive (TAR) | application/x-tar |
.tif , .tiff | Tagged Image File Format (TIFF) | image/tiff |
.ts | MPEG transport stream | video/mp2t |
.ttf | TrueType Font | font/ttf |
.txt | Text, (generally ASCII or ISO 8859-n) | text/plain |
.vsd | Microsoft Visio | application/vnd.visio |
.wav | Waveform Audio Format | audio/wav |
.weba | WEBM audio | audio/webm |
.webm | WEBM video | video/webm |
.webp | WEBP image | image/webp |
.woff | Web Open Font Format (WOFF) | font/woff |
.woff2 | Web Open Font Format (WOFF) | font/woff2 |
.xhtml | XHTML | application/xhtml+xml |
.xls | Microsoft Excel | application/vnd.ms-excel |
.xlsx | Microsoft Excel (OpenXML) | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
.xml | XML | application/xml is recommended as of RFC 7303 (section 4.1), but text/xml is still used sometimes. You can assign a specific MIME type to a file with .xml extension depending on how its contents are meant to be interpreted. For instance, an Atom feed is application/atom+xml , but application/xml serves as a valid default. |
.xul | XUL | application/vnd.mozilla.xul+xml |
.zip | ZIP archive | application/zip is the standard, but beware that Windows uploads .zip with MIME type application/x-zip-compressed . |
.3gp | 3GPP audio/video container | video/3gpp ; audio/3gpp if it doesn’t contain video |
.3g2 | 3GPP2 audio/video container | video/3gpp2 ; audio/3gpp2 if it doesn’t contain video |
.7z | 7-zip archive | application/x-7z-compressed |
اهمیت و کاربرد MIME Types
MIME types نقش بسیار مهمی در انتقال و نمایش دادهها در وب دارند. آنها به مرورگرها و دیگر کلاینتهای HTTP امکان میدهند تا به درستی با انواع مختلف محتوا کار کنند و تجربه کاربری یکنواخت و روانی را فراهم کنند. از فایلهای متنی ساده تا محتوای چندرسانهای پیچیده، همه و همه به کمک MIME types به درستی شناسایی و مدیریت میشوند.
در محیط وب امروزی، جایی که تنوع محتوا از متن و تصویر تا ویدئو و صوت به شدت گسترده است، استفاده صحیح از MIME types به توسعهدهندگان وب اجازه میدهد تا بدون نگرانی از ناسازگاریها و مشکلات فرمتهای مختلف، به ایجاد و ارائه محتوای غنی و متنوع بپردازند. همچنین، این امر به کاربران امکان میدهد تا بدون نیاز به تنظیمات دستی، از محتوای مورد نظر خود به بهترین شکل ممکن بهرهبرداری کنند.
پیادهسازی و مدیریت MIME Types در سرورها
مدیریت صحیح MIME types بر روی سرورهای وب از اهمیت بالایی برخوردار است. سرورها باید به درستی پیکربندی شوند تا نوع MIME صحیح را برای هر نوع فایل مشخص کنند. این کار میتواند به صورت دستی در فایلهای پیکربندی سرور انجام شود یا با استفاده از ماژولها و افزونههای خاصی که این کار را به صورت خودکار انجام میدهند.
به عنوان مثال، در سرور آپاچی، میتوان انواع MIME را در فایل پیکربندی mime.types
تعریف کرد. همچنین، در سرورهای Nginx نیز میتوان انواع MIME را در بخش http
فایل پیکربندی مشخص کرد.
MIME types یک بخش اساسی از پروتکل HTTP هستند که به سازماندهی و مدیریت انواع مختلف محتوا در وب کمک میکنند. با استفاده از MIME types، توسعهدهندگان و سرورهای وب میتوانند به درستی انواع محتوا را شناسایی و مدیریت کنند و تجربه کاربری بهتری را برای کاربران فراهم کنند. از فایلهای متنی ساده تا محتوای چندرسانهای پیچیده، MIME types نقش کلیدی در ارتباطات وب ایفا میکنند و به طور مداوم با پیشرفت تکنولوژی و نیازهای جدید تطبیق مییابند.