Объяснение MIME-типов: почему Linux и Mac OS X не нуждаются в расширениях файлов

Пользователям, привыкшим работать с Windows, расширения файлов в Linux и Mac OS X могут показаться немного странными. Операционная система, кажется, знает, что такое файлы, не полагаясь на расширение файла — она делает это, используя MIME-типы.

MIME-типы теперь известны как «Internet Media Typesа». MIME-типы изначально были созданы для электронной почты — «MIME» означает многоцелевые расширения электронной почты — но они расширились и для других целей.

Что такое файл?

Файл — это просто набор 1 и 0. Файловая система связала такой файл, как «Document.pdf», с куском этих 1 и 0. «Тип файла» — это просто информация, связанная с файлом, которая сообщает операционной системе и программам, как интерпретировать эти 1 и 0. Например, изображение PNG необходимо открыть с помощью средства просмотра изображений, которое поддерживает файлы PNG. Откройте его в текстовом редакторе, и вы увидите тарабарщину. Попробуйте запустить его как программу, и он не запустится.

Расширения файлов в Windows

Windows игнорирует типы MIME, полагаясь только на расширения файлов. Например, у вас может быть текстовый файл с именем Example.txt. Windows знает, что это текстовый файл из-за расширения файла .txt. Удалите .txt. расширение файла — переименование файла в «Example» без расширения файла — и Windows не будет знать, что делать с полученным файлом. Вот почему Windows предупреждает вас при удалении расширения файла, говоря: «После изменения расширения этот файл может оказаться недоступным. Вы действительно хотите изменить его?». Он не станет непригодным для использования навсегда — вы можете снова сделать его «пригодным для использования», дописав исходное расширение файла.

Вот почему Windows по умолчанию скрывает расширения файлов, чтобы люди не могли случайно удалить эти расширения файлов. Злоумышленники могут злоупотреблять этим поведением для маскировки файлов с поддельными расширениями.

После этого дважды щёлкните файл, и Windows отобразит список программ, которые можно использовать для открытия файлов. Windows не знает, какой это тип файла, но он откроется правильно, если вы откроете его с помощью текстового редактора. «Тип файла» хранится в самом имени файла. Расширения файлов не являются особыми — это всего несколько символов после точки в имени файла. У вас может быть расширение файла с одним символом или даже с более чем тремя символами.

Чтобы настроить, какие приложения открывают файлы, вы можете выбрать «Приложения по умолчанию» для открытия тех или иных файлов, либо «Выбрать значения по умолчанию по типам файлов».

MIME-типы в Linux или Mac OS X

Когда вы открываете файл в Linux или Mac OS X, операционная система не просто полагается на расширение файла. На самом деле, если вы создаёте текстовый файл в Linux, он часто по умолчанию вообще не имеет расширения. Если дважды щёлкнуть такой текстовый файл, он откроется в текстовом редакторе. Если у вас есть файл изображения без расширения файла, вы можете дважды щёлкнуть его, и он откроется непосредственно в средстве просмотра изображений. Файлы других типов будут открываться в приложениях по умолчанию.

Вместо того чтобы полагаться на расширение файла в конце имени файла, информация о содержимом файла — MIME-типе файла — встроена в начало самого файла. Таким образом, когда вы открываете файл без расширения, Linux и Mac OS X будут смотреть на MIME-тип файла, чтобы определить, к какому типу он относится.

Вот список распространённых расширений файлов Windows и эквивалентных им MIME-типов:

  • .txt – text/plain
  • .html – text/html
  • .mp3 – audio/mpeg3
  • .png – image/png
  • .jpg и .jpeg – image/jpeg
  • .doc – application/msword
  • .docx – application/vnd.openxmlformats-officedocument.wordprocessingml.document
  • .odt – application/vnd.oasis.opendocument.text
  • .zip – application/zip
  • .pdf – application/pdf
  • .torrent – application/x-bittorrent

Если вы хотите изменить текстовый редактор по умолчанию в Linux, вы должны изменить ассоциацию типа text/plain MIME.

Файлы Linux и Mac в Windows

Перенесите файлы без расширений из Linux в Windows, и вы не сможете открыть их. Если вы знаете, к какому типу относится каждый файл, вы можете просто открыть его непосредственно в нужной программе или добавить соответствующее расширение файла.

Как в Linux, так и в Mac OS X часто используются расширения файлов, что способствует совместимости. Однако они полагаются не только на расширения файлов. Они могут использовать расширения файлов, когда информация о MIME-типе неясна — например, Mac OS X предупреждает вас, что «ваш документ может открыться в другом приложении», если вы удалите или измените расширение файла. Расширение файла может переопределить MIME-тип, но файл по-прежнему можно будет использовать без расширения благодаря информации о типе MIME.

MIME-типы в вашем браузере

Ваш веб-браузер и почтовый клиент также используют MIME-типы. Именно так ваш веб-браузер узнает, что страница типа http://example.com/page должна отображаться как файл HTML, даже если она не имеет расширения файла, такого как http://example.com/page.html — веб-сервер отправляет MIME-тип text/html вместе с файлом. Если сервер хочет, чтобы ваш браузер загрузил файл, он отправляет тип MIME application/octet-stream. Это означает, что «это двоичный файл, просто скачай и сохрани его как файл».

В некоторых случаях на сервере могут быть настроены неправильные параметры типа MIME. Вот почему вы иногда щёлкаете ссылку на веб-странице, но следующая страница загружается на ваш компьютер в виде файла, а не открывалась в веб-браузере. Если MIME-тип application/octet-stream отправляется вместо MIME-типа text/html, файл будет загружен. Вы мало что можете с этим поделать, кроме как ждать, пока сервер перестанет плохо себя вести.

MIME-типы довольно просты, хотя новичку Linux или Mac они могут показаться чёрной магией. Они предоставляют больше свободы, когда дело доходит до именования ваших файлов — вы можете называть документы, изображения и видео как хотите в Linux, удаляя расширения файлов, если хотите.

Смотрите также: Онлайн сервис «Определение типа файла без расширения»


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

wp-puzzle.com logo