MIME类型说明:为什么Linux和Mac OS X不需要文件扩展名

files-with-no-file-extension-on-linux

来自Windows,Linux和Mac OS X上的文件扩展名看起来有点奇怪。 操作系统似乎知道什么文件是不依赖于文件扩展名 - 它使用MIME类型。

MIME类型现在称为“Internet媒体类型”。MIME类型最初是为电子邮件创建的 - “MIME”表示多用途Internet邮件扩展 - 但它们已扩展到其他用途。

什么是文件,反正?

一个文件只是一个1和0的集合。 文件系统将诸如“Document.pdf”的文件与这些1和0的块相关联。 “文件类型”仅仅是与告诉操作系统和程序如何解释这些1和0的文件相关联的信息。 例如,需要使用支持PNG文件的图像查看器打开PNG图像。 在文本编辑器中打开它,你会看到乱码。 尝试运行它作为一个程序,它将不会运行。

Windows上的文件扩展名

Windows忽略MIME类型,仅依赖于文件扩展名。 例如,您可能有一个名为Example.txt的文本文件。 Windows知道它是一个文本文件,因为.txt文件扩展名。 删除.txt。 文件扩展名 - 将文件重命名为“示例”,没有文件扩展名 - 并且Windows不会知道如何处理生成的文件。 这是为什么Windows警告你,当删除文件扩展名,说“如果你更改文件扩展名,文件可能会变得不可用”。它不会永远不可用 - 你可以通过读取原始文件再次“可用”延期。

这就是为什么Windows隐藏文件扩展名默认情况下,所以人们不会意外删除这些文件扩展名。 攻击者可以滥用这种行为-和其他攻击-以掩饰用假文件扩展名的文件

windows-file-extension-change-warning[4]

之后双击该文件,Windows将显示可用于打开文件的程序列表。 Windows不知道这是什么类型的文件,但它会正确打开,如果你使用文本编辑器打开它。 “文件类型”存储在文件名本身中。 文件扩展名不是特殊的 - 它们只是文件名中一段时间​​后的几个字符。 您可以使用单个字符或甚至超过三个字符的文件扩展名。

windows-how-do-you-want-to-open-file-with-no-file-extension

配置的应用程序打开的文件 ,你必须将它们与不同的文件扩展名关联。 Windows尝试在一个漂亮的界面中呈现这个,但你仍然只是选择哪个应用程序应该与哪个文件扩展名相关联。

windows-8.1-file-extension-associations[4]

Linux或Mac OS X上的MIME类型

当您在Linux或Mac OS X上打开文件时,操作系统不仅仅依赖于文件扩展名。 事实上,如果你在Linux上创建一个文本文件,它在默认情况下通常没有文件扩展名。 如果您双击这样的文本文件,它将在文本编辑器中打开。 如果您有没有文件扩展名的图像文件,则可以双击它,它将直接在图像查看器中打开。 其他类型的文件将在其打开缺省应用

不是依赖文件名称末尾的文件扩展名,而是将文件内容(文件的MIME类型)的信息嵌入到文件本身的开头。 因此,当您打开没有文件扩展名的文件时,Linux和Mac OS X将查看文件的MIME类型以确定它是什么类型的文件。

ubuntu-14.04-mime-types-in-nautilus

以下是常见的Windows文件扩展名及其等效的MIME类型的列表:

.txt - text / plain

.html - text / html

.mp3 - audio / mpeg3

.png - image / png

.doc - application / msword

如果您想更改Linux上的默认文本编辑器,您可以更改文本/纯MIME类型关联。

linux-mime-type-command

Linux上的Mac和Mac文件

将没有文件扩展名的文件从Linux导入到Windows,您可能无法访问它们。 如果你知道每个文件是什么类型的文件,你可以直接打开它在正确的程序或添加适当的文件扩展名。

Linux和Mac OS X经常使用文件扩展名,这有助于兼容性。 但是,他们不仅仅依赖文件扩展名。 当MIME类型信息不清楚时,他们可能会使用文件扩展名 - 例如,如果您删除或更改文件扩展名,Mac OS X会警告您“您的文档可能在不同的应用程序中打开”。 文件扩展名可以覆盖MIME类型,但是由于其MIME类型信息,该文件仍然可以在没有文件扩展名的情况下使用。

mac-file-extension-document-may-open-in-a-different-application

MIME类型在您的浏览器

您的Web浏览器和电子邮件客户端也依赖MIME类型。 这就是您的网络浏览器知道像http://example.com/page这样的网页应该呈现为HTML文件,即使它没有像http://example.com/page.html这样的文件扩展名, Web服务器将文本/ html MIME类型与文件一起发送。 如果服务器希望您的浏览器下载文件,它会发送应用程序/八位字节流MIME类型。 这意味着“这是一个二进制文件,只需下载并保存为一个文件。

在某些情况下,服务器可能配置了不正确的MIME类型设置。 这就是为什么你有时点击一个网页上的链接只有下一个页面作为文件下载到您的计算机,而不是在您的网络浏览器中打开。 如果MIME类型应用程序/八位字节流被发送时,如果应该发送类型为text / html的MIME类型,则文件将被下载。 没有太多的你可以做的,而不是等待服务器停止行为不端。

firefox-mime-type-display-in-download-dialog[4]


MIME类型是相当简单,虽然他们似乎像一个新的Linux或Mac用户的黑魔法。 它们在命名文件时提供了更多的自由 - 你可以在Linux上命名文档,图片和视频,任何你想要的,如果你想删除文件扩展名。

赞 (0)
分享到:更多 ()