租赁服务器提供的功能之一是“MIME 类型设置”。在这里,我们将解释该功能的含义以及实际使用的时间。
首先
在进入详细讲解之前,我想提一件事,如果你是刚接触租用服务器的初学者,基本上不用担心MIME类型设置。
首先,此功能是为了让用户针对特殊目的进行额外的设置,这些设置无法单独由现有的服务器设置来处理。初学者很少有这种特殊用法的情况,所以没有必要强迫自己理解后面的所有解释。
什么是 MIME 类型?
简单定义
为了简要描述 MIME 类型,我们可以说:
- 文件具有特定扩展名的文件类型的服务器端定义。
但是,仅凭这个表达就很难理解,所以我会详细解释一下。
具有 .txt 扩展名的文件的浏览器行为
例如,假设您有一个名为“memo.txt”的文本文件,上面写有几行文本,位于(Web)服务器上。这时如果用浏览器访问memo.txt的URL,就会显示文本文件的内容。
那么浏览器为什么要这样做(显示文本文件的内容)?那是因为服务器有以下设置。
- 带有 .txt 扩展名的文件是纯文本(文本/纯文本)
并且浏览器有一种机制可以按原样显示纯(普通)文本。因此,memo.txt 的内容显示在浏览器中。
如果更改 MIME 类型会发生什么
但是,假设网站管理员想要保存(下载)扩展名为 .txt 的文件,而不是在浏览器中查看它。
为此,例如,按如下方式重写服务器端设置。
- 带有 .txt 扩展名的文件是一些数据(应用程序/八位字节流)
如果无法指定目标文件,浏览器具有下载机制。因此,如果将扩展名 .txt 指定为名为“某些数据(严格来说,任意二进制数据)”的未指定文件,则会显示保存对话框。
* 根据浏览器设置,下载可能会突然开始而不显示对话框。此外,IE 可能会忽略 MIME 类型,因此情况可能并非如此。
回到第一个定义,MIME 类型是“具有特定扩展名的文件,该文件在服务器端定义为文件类型”。
如何设置 MIME 类型
关于配置文件
在实际设置 MIME 类型时,一般租用服务器(共享服务器)会编辑一个名为“.htaccess”的文件。
实际上,还有一个名为“mime.types”的配置文件,但这是服务器管理员为所有用户进行通用设置的。例如,图像和HTML文件等典型的扩展名,例如上述“.txt”,在租赁服务器端预先设置在这里。
但是,在某些情况下,无法单独使用此类通用设置。在这种情况下,每个用户都可以通过添加/编辑名为 .htaccess 的文件来设置任何 MIME 类型。.htaccess 只在文件所在的目录下工作,所以不会影响其他用户。 * 请注意,根据租用服务器,在极少数情况下可能不允许添加/编辑 .htaccess。
对于某些服务,例如 X 服务器,您可以从管理屏幕(控制面板)添加/删除 MIME 类型。但是,即使你从这里设置它,它终究会被添加到 .htaccess 中。
如何编写 MIME 类型
MIME 类型设置(描述)方法定义如下。
- AddType 文件分类/文件子类扩展名
举一个具体的例子,如果.txt被定义为纯文本,则如下所示。
- AddType 文本/纯 .txt
这些主要和次要类别代表了各种类型的 MIME 类型名称(媒体类型)。使用前请检查以下网站。
· 媒体类型 – IANA
实际使用示例
正如中间提到的,服务器管理员已经设置了典型的扩展。因此,在使用通用文件操作网站时,几乎不需要注意 MIME 类型设置。但是,可能需要出于特殊目的进行设置。下面是一些实际使用示例。
显示 SVG 图像
SVG是近年来逐渐流行起来的一种图像文件格式。这种SVG是一种无论图像放大或缩小多少都不会劣化的矢量格式,与以像素为单位表示图像的传统格式不同。
但是由于格式还没有普及,所以租借服务器可能没有设置SVG图片的MIME类型。在这种情况下,您需要自己进行如下设置。
- 添加类型图像/svg + xml .svg
- 添加类型图像/svg + xml .svgz
网页字体的使用
另外,在过去,即使您想在网站上指定特定字体,除非该字体在查看者的计算机上,否则它无法正常显示。然而,最近,通过在服务器端放置字体文件并加载它来实现在任何环境中通用字体显示的“网络字体”的使用增加了。
此时,还为字体文件扩展名设置了MIME 类型。使用网页字体时的设置请参考以下文章。
- 使用 CSS3 网页字体时的 MIME 类型设置 – ENTEREAL
其他(过去的使用示例)
此外,MIME 类型也用于运行带有 .htm / .html 扩展名的文件的 PHP 程序,或执行称为 SSI 的动态处理,带有 .htm / .html 的情况。
但是,现在不推荐在这种情况下设置 MIME 类型,并且通常使用处理程序 (AddHandler) 指定。