MIME介绍

MIME小知识

用户可以通过使用MIME以设置服务器传送多媒体如声音和动画信息,这一切可能通过CGI脚本来进行。在下面的文章中,你可以了解到一此关于MIME和关于在网络上使用MIME的知识。

MIME是一种技术规范,它原来是用于电子邮件的,现在也可以用于浏览器上,传送可以供浏览器识别的信息,关于MIME的知识并是十分难懂的,有一些基本的计算机概念就可以理解了,但如果要进一步使用,就必须注意内容。实际上,我们在上网的时候就已经接触到了MIME,只是浏览器和服务器在底层实现了。

MIME有时候被错误地理解为多媒体Internet邮件扩展(Multimedia Internet Mail Extensions),这是一个错误,但是MIME在网上经常用于多媒体应用程序,所以人们以为这是它是多媒体邮件扩展,而实际上它应该被称为多用途Internet邮件扩展(Multipurpose Internet Mail Extensions),这一点一定要注意,因为有时候内容里根本没有非文本成份。

MIME对于邮件系统的扩展是巨大的,因为在MIME出现以前,信件内容如果要包括声音和动画,就必须把它变为ASCII码或把二进制的信息变成可以传送的编码标准,而接收方必须经过解码才可以获得声音和图画信息。MIME提供了一种可以在邮件中附加多种不同编码文件的方法。这与原来的邮件是大大不同的。而现在MIME已经成为了HTTP协议标准的一个部分。

MIME是服务器通知客户机传送文件是什么类型的主要方法,客户机浏览器也通过MIME告诉服务器它的参数。在网上,如果接收到的文件没有MIME头,就默认它为HTML格式。但这样也不好,因为当MIME的包头是text/plain时,浏览器将直接显示而不关心它的什么字体,颜色之类的参数,这样显示出来的内容可不是很好看呀。

MIME头是什么样子要看它是用在电子邮件中还是用在浏览器上,两者内容可能有所不同。对于邮件头来说,版本号,内容类型声明,编码方式,内容描述是必不可少的。这是用于邮件头中的格式,在下面,我们将重点说到在HTTP中传送MIME头,这时MIME头要简单一些。

下例是一个邮件的标准MIME头:

Mime-Version: 1.0 //版本号:1.0

Content-Type: multipart/mixed; boundary="IMA.Boundary.750407228" //内容类型是多种的

--IMA.Boundary.750407228

Content-Type: text/plain; charset=US-ASCII //内容类型:文本,字符是ASCII的

Content-Transfer-Encoding: 7bit //编码方式:7位

Content-Description: cc:Mail note part

在用于浏览器时,用户不需要知道那么多的信息,所以MIME头就比较简单了。在访问一个网页时,浏览器和服务器之间产生一个会话,作为请求内容的一部分,浏览器发送它能够理解的MIME类型的描述,这就告诉服务器,浏览器除了网页外还可以支持什么,服务器对这个信息一般不作为什么修改。

服务器通过发向客户机的MIME头通知客户浏览器内容是什么,我们看看下面这个头:

Content-type: text/html

在实现的时候,一定要注意MIME头后要跟一个空行,不然这个头会被浏览器忽略,这个头会被当作文本显示出来。当服务器传送GIF图象时,头会如下:

 

Content-type: image/gif

Content-transfer-encoding: BINARY

 

通常的MIME内容类型并不起什么作用,浏览器可以自己识别内容的类型,但是如果您使用一些另外的类型,这个问题可就大了,如果你使用了text/postscript,那浏览器会显示下载窗口,或就把这个东西显示出来,那可就不好办了。下面我们介绍一下标准MIME类型。

Text. 文本,它用于描述不同类型的文本,包括通常的文本,PostScript和HTML,虽然HTML不是一个可能的子类型。

Multipart. 多类型,指出此信息包括多种信息,不止一种类型。

Message. 用于标记不同类型的消息。

Application. 应用类型。

Image. 图象,用于标明图形文件。

Audio. 声音,用于标明声音文件。

Video. 影象,用于标明动画文件。

每个MIME类型有不同的子类型,实际上,您不可能单独使用类型而不使用子类型,只有一个例外,这就是"telnet"类型。IANA提供45种类型/子类型对支持。当然,标准是开放的,允许用户自定义自己的类型,用户自定义类型要以“X-”开始以示区别。在添加新的类型时,一定要注意,尽量使用已有的类型达到自己的目的。如果非要添加新的类型,一定要保证服务器一方支持这种类型,也要保证客户端也能够通过一些应用程序(如插件)来识别新类型。如果您的网站的访问者很广,不要轻易使用新类型,要么使用已有的类型,或者向IANA提出注册请求。

 

 

 

 

 

 

 

 

 


MIME (Multipurpose Internet Mail Extensions,多目的Internet邮件扩展)是创建用于电子邮件交换,网络文档,及企业网和Internet上的其他应用程序中的文件格式的规范。每个MIME格式包含一个MIME内容类型("MIME type")和指示存储在这个文件中的数据的子类型。MIME类型和子类型一般以类型/子类型的形式列出。例如,一个MPEG视频文件将会以"video/mpeg"的形式列出。MIME类型/子类型列表包括可接受的文件名扩展名。例如,列出一个MPEG文件的MIME信息的表格可能包含如下的一个MPEG条目:
类型/子类型
扩展名

video/mpeg
.mpe, .mpeg, .mpg

 

MIME格式的内容广泛用于网络文档中。例如,你可以将一个MPEG文件连接到一个网页上。当用户浏览这个网页单击这个MPEG文件连接时,当下载这个MPEG 文件到这个浏览器显示时,IIS和Microsoft® Internet Explorer浏览器执行下面的事件序列:

连同这个文件,IIS将MIME类型和子类型(video/mpeg, video/mpe, 或 video/mpg)发送到这个浏览器。
如果对MPEG MIME格式的支持是固有的,这个浏览器就会显示这个文件。
如果这浏览器不包含对MIME格式的固有支持,这个浏览器在它的助手应用程序的表格中查找这个文件名扩展名。然后,它或者选择相应的帮助应用程序显示这个文件或者返回一个错误信息。
IIS包含一个最通用的基于网络的mime类型和子类型及相关联的文件名扩展名的一个表格。如果IIS没有你下载的这个MIME格式文件的MIME信息,那么IIS将向这个文件附加一个缺省的MIME身份。结果,这个接收文件的客户可能会误解它的内容。你可以为身份不在表格中的文件向IIS手动加入MIME类型,子类型和文件名扩展名。见关于加入用于你的IIS版本的MIME类型的部分。

注意,当计划使用一个MIME格式时,你必须为助手程序配置浏览器来处理这个浏览器不能直接支持的所有MIME类型。

使用MIME表格

这个参考包含同一个MIME表格的两个版本:

第一个表格列出了IIS 4.0和IIS 5.0的MIME格式,按照文件名扩展名排序。
第二个表格列出了按MIME类型/子类型排序的同一信息。
如果你有一个MIME扩展名,并想找到这个被IIS 4.0或 IIS 5.0使用的MIME类型/子类型,请在第一个标各种查找,"IIS中的MIME格式,按扩展名排序."

如果你有一个MIME类型/子类型,并且想要弄清楚它是否在IIS 4.0 或IIS 5.0注册了,请察看第二个表格,"IIS中的MIME格式,按类型/子类型排序"。这个表格也可以用于用于给定MIME类型/子类型的一个文件扩展名。

向IIS 4.0加入MIME类型

MIME类型可以利用Internet服务管理器控制台在IIS 4.0中注册。

例如,为了利用Internet服务管理器加入XML MIME类型:

选择Default Web Site,弹出Properties对话框。
选择HTTP Headers 标签。
在MIME Map下,单击 File Types 标签并选择 New Type。
在Extension 域键入.xml 并在Content Type 域键入text/xml,然后单击OK。
任何其他扩展名,如.xsl(eXtensible Style Sheets),可以采取同样的过程加入。

向IIS 5.0加入MIME类型

MIME类型可以利用IIS snap-in在IIS 5.0中注册。

例如,为了利用IIS snap-in向缺省的得网站加入XML MIME类型:

选择Default Web Site,弹出Properties对话框。
选择HTTP Headers标签。
在MIME Map下,单击File Types 标签并选择New Type。
在Extension 域中键入.xml,在 Content Type 域中键入text/xml, 然后单击OK。
为了向所有在给定机器上运行的站点加入XML MIME类型:

选择Internet Information Services并弹出Properties对话框。
在 Computer MIME Map下, 单击Edit按钮并选择New Type。
在Extension 域键入.xml 并在 Content Type 域键入text/xml,然后单击OK。
任何其他扩展名,如.xsl (eXtensible Style Sheets),可以采用同样的过程加入。

在ASP页声明一个MIME类型

当网络服务器向一个浏览器返回一个文件时,它发送确定返回内容的类型的信息。当ASP应用程序要产生不只是HTML的内容时,它必须利用Response对象的ContentType属性声明一个MIME类型/子类型。

例如,当利用ASP动态产生XML时,XML MIME类型/子类型必须在这个ASP本身声明。利用Response对象的ContentType属性,指示输出是XML,代码如下:

<% Response.ContentType = "text/xml" %>

IIS中的MIME格式,按扩展名排序

下面的表格列出了按文件扩展名排序的MIME内容类型,这些类型是在IIS 4.0 和IIS 5.0中注册的。

扩展名 类型/子类型 IIS 4.0 IIS 5.0
* application/octet-stream 是 是
323 text/h323 否 是
acx application/internet-property-stream 否 是
ai application/postscript 是 是
aif audio/x-aiff 是 是
aifc audio/x-aiff 是 是
aiff audio/x-aiff 是 是
asf video/x-ms-asf 否 是
asr video/x-ms-asf 否 是
asx video/x-ms-asf 否 是
au audio/basic 是 是
avi video/x-msvideo 是 是
axs application/olescript 否 是
bas text/plain 是 是
bcpio application/x-bcpio 是 是
bin application/octet-stream 是 是
bmp image/bmp 是 是
c text/plain 是 是
cat application/vnd.ms-pkiseccat 否 是
cdf application/x-cdf 否 是
cer application/x-x509-ca-cert 否 是
class application/octet-stream 是 是
clp application/x-msclip 是 是
cmx image/x-cmx 是 是
cod image/cis-cod 是 是
cpio application/x-cpio 是 是
crd application/x-mscardfile 是 是
crl application/pkix-crl 否 是
crt application/x-x509-ca-cert 否 是
csh application/x-csh 是 是
css text/css 否 是
dcr application/x-director 是 是
der application/x-x509-ca-cert 否 是
dir application/x-director 是 是
dll application/x-msdownload 否 是
dms application/octet-stream 是 是
doc application/msword 是 是
dot application/msword 是 是
dvi application/x-dvi 是 是
dxr application/x-director 是 是
eps application/postscript 是 是
etx text/x-setext 是 是
evy application/envoy 是 是
exe application/octet-stream 是 是
fif application/fractals 否 是
flr x-world/x-vrml 是 是
gif image/gif 是 是
gtar application/x-gtar 是 是
gz application/x-gzip 否 是
h text/plain 是 是
hdf application/x-hdf 是 是
hlp application/winhlp 是 是
hqx application/mac-binhex40 是 是
hta application/hta 否 是
htc text/x-component 否 是
htm text/html 是 是
html text/html 是 是
htt text/webviewhtml 否 是
ico image/x-icon 否 是
ief image/ief 是 是
iii application/x-iphone 否 是
ins application/x-internet-signup 否 是
isp application/x-internet-signup 否 是
jfif image/pipeg 否 是
jpe image/jpeg 是 是
jpeg image/jpeg 是 是
jpg image/jpeg 是 是
js application/x-javascript 是 是
latex application/x-latex 是 是
lha application/octet-stream 是 是
lsf video/x-la-asf 否 是
lsx video/x-la-asf 否 是
lzh application/octet-stream 是 是
m13 application/x-msmediaview 是 是
m14 application/x-msmediaview 是 是
m3u audio/x-mpegurl 否 是
man application/x-troff-man 是 是
mdb application/x-msaccess 是 是
me application/x-troff-me 是 是
mht message/rfc822 否 是
mhtml message/rfc822 否 是
mid audio/mid 否 是
mny application/x-msmoney 是 是
mov video/quicktime 是 是
movie video/x-sgi-movie 是 是
mp2 video/mpeg 是 是
mp3 audio/mpeg 否 是
mpa video/mpeg 是 是
mpe video/mpeg 是 是
mpeg video/mpeg 是 是
mpg video/mpeg 是 是
mpp application/vnd.ms-project 是 是
mpv2 video/mpeg 是 是
ms application/x-troff-ms 是 是
mvb application/x-msmediaview 是 是
nws message/rfc822 否 是
oda application/oda 是 是
p10 application/pkcs10 否 是
p12 application/x-pkcs12 否 是
p7b application/x-pkcs7-certificates 否 是
p7c application/x-pkcs7-mime 否 是
p7m application/x-pkcs7-mime 否 是
p7r application/x-pkcs7-certreqresp 否 是
p7s application/x-pkcs7-signature 否 是
pbm image/x-portable-bitmap 是 是
pdf application/pdf 是 是
pfx application/x-pkcs12 否 是
pgm image/x-portable-graymap 是 是
pko application/ynd.ms-pkipko 否 是
pma application/x-perfmon 是 是
pmc application/x-perfmon 是 是
pml application/x-perfmon 是 是
pmr application/x-perfmon 是 是
pmw application/x-perfmon 是 是
pnm image/x-portable-anymap 是 是
pot, application/vnd.ms-powerpoint 是 是
ppm image/x-portable-pixmap 是 是
pps application/vnd.ms-powerpoint 是 是
ppt application/vnd.ms-powerpoint 是 是
prf application/pics-rules 否 是
ps application/postscript 是 是
pub application/x-mspublisher 是 是
qt video/quicktime 是 是
ra audio/x-pn-realaudio 是 是
ram audio/x-pn-realaudio 是 是
ras image/x-cmu-raster 是 是
rgb image/x-rgb 是 是
rmi audio/mid 否 是
roff application/x-troff 是 是
rtf application/rtf 是 是
rtx text/richtext 是 是
scd application/x-msschedule 是 是
sct text/scriptlet 否 是
setpay application/set-payment-initiation 否 是
setreg application/set-registration-initiation 否 是
sh application/x-sh 是 是
shar application/x-shar 是 是
sit application/x-stuffit 否 是
snd audio/basic 是 是
spc application/x-pkcs7-certificates 否 是
spl application/futuresplash 否 是
src application/x-wais-source 是 是
sst application/vnd.ms-pkicertstore 否 是
stl application/vnd.ms-pkistl 否 是
stm text/html 是 是
sv4cpio application/x-sv4cpio 是 是
sv4crc application/x-sv4crc 是 是
t application/x-troff 是 是
tar application/x-tar 是 是
tcl application/x-tcl 是 是
tex application/x-tex 是 是
texi application/x-texinfo 是 是
texinfo application/x-texinfo 是 是
tgz application/x-compressed 否 是
tif image/tiff 是 是
tiff image/tiff 是 是
tr application/x-troff 是 是
trm application/x-msterminal 是 是
tsv text/tab-separated-values 是 是
txt text/plain 是 是
uls text/iuls 否 是
ustar application/x-ustar 是 是
vcf text/x-vcard 否 是
vrml x-world/x-vrml 是 是
wav audio/x-wav 是 是
wcm application/vnd.ms-works 是 是
wdb application/vnd.ms-works 是 是
wks application/vnd.ms-works 是 是
wmf application/x-msmetafile 是 是
wps application/vnd.ms-works 是 是
wri application/x-mswrite 是 是
wrl x-world/x-vrml 是 是
wrz x-world/x-vrml 是 是
xaf x-world/x-vrml 是 是
xbm image/x-xbitmap 是 是
xla application/vnd.ms-excel 是 是
xlc application/vnd.ms-excel 是 是
xlm application/vnd.ms-excel 是 是
xls application/vnd.ms-excel 是 是
xlt application/vnd.ms-excel 是 是
xlw application/vnd.ms-excel 是 是
xof x-world/x-vrml 是 是
xpm image/x-xpixmap 是 是
xwd image/x-xwindowdump 是 是
z application/x-compress 否 是
zip application/zip 是 是

IIS中的MIME格式,按类型/子类型排序

下面的表格列出了按MIME内容类型/子类型排序的MIME内容类型,这些类型是在IIS 4.0 和IIS 5.0中注册的。

类型/子类型 扩展名 IIS 4.0 IIS 5.0
application/envoy evy 是 是
application/fractals fif 否 是
application/futuresplash spl 否 是
application/hta hta 否 是
application/internet-property-stream acx 否 是
application/mac-binhex40 hqx 是 是
application/msword doc 是 是
application/msword dot 是 是
application/octet-stream * 是 是
application/octet-stream bin 是 是
application/octet-stream class 是 是
application/octet-stream dms 是 是
application/octet-stream exe 是 是
application/octet-stream lha 是 是
application/octet-stream lzh 是 是
application/oda oda 是 是
application/olescript axs 否 是
application/pdf pdf 是 是
application/pics-rules prf 否 是
application/pkcs10 p10 否 是
application/pkix-crl crl 否 是
application/postscript ai 是 是
application/postscript eps 是 是
application/postscript ps 是 是
application/rtf rtf 是 是
application/set-payment-initiation setpay 否 是
application/set-registration-initiation setreg 否 是
application/vnd.ms-excel xla 是 是
application/vnd.ms-excel xlc 是 是
application/vnd.ms-excel xlm 是 是
application/vnd.ms-excel xls 是 是
application/vnd.ms-excel xlt 是 是
application/vnd.ms-excel xlw 是 是
application/vnd.ms-pkicertstore sst 否 是
application/vnd.ms-pkiseccat cat 否 是
application/vnd.ms-pkistl stl 否 是
application/vnd.ms-powerpoint pot, 是 是
application/vnd.ms-powerpoint pps 是 是
application/vnd.ms-powerpoint ppt 是 是
application/vnd.ms-project mpp 是 是
application/vnd.ms-works wcm 是 是
application/vnd.ms-works wdb 是 是
application/vnd.ms-works wks 是 是
application/vnd.ms-works wps 是 是
application/winhlp hlp 是 是
application/x-bcpio bcpio 是 是
application/x-cdf cdf 否 是
application/x-compress z 否 是
application/x-compressed tgz 否 是
application/x-cpio cpio 是 是
application/x-csh csh 是 是
application/x-director dcr 是 是
application/x-director dir 是 是
application/x-director dxr 是 是
application/x-dvi dvi 是 是
application/x-gtar gtar 是 是
application/x-gzip gz 否 是
application/x-hdf hdf 是 是
application/x-internet-signup ins 否 是
application/x-internet-signup isp 否 是
application/x-iphone iii 否 是
application/x-javascript js 是 是
application/x-latex latex 是 是
application/x-msaccess mdb 是 是
application/x-mscardfile crd 是 是
application/x-msclip clp 是 是
application/x-msdownload dll 否 是
application/x-msmediaview m13 是 是
application/x-msmediaview m14 是 是
application/x-msmediaview mvb 是 是
application/x-msmetafile wmf 是 是
application/x-msmoney mny 是 是
application/x-mspublisher pub 是 是
application/x-msschedule scd 是 是
application/x-msterminal trm 是 是
application/x-mswrite wri 是 是
application/x-netcdf cdf 是 是
application/x-netcdf nc 是 是
application/x-perfmon pma 是 是
application/x-perfmon pmc 是 是
application/x-perfmon pml 是 是
application/x-perfmon pmr 是 是
application/x-perfmon pmw 是 是
application/x-pkcs12 p12 否 是
application/x-pkcs12 pfx 否 是
application/x-pkcs7-certificates p7b 否 是
application/x-pkcs7-certificates spc 否 是
application/x-pkcs7-certreqresp p7r 否 是
application/x-pkcs7-mime p7c 否 是
application/x-pkcs7-mime p7m 否 是
application/x-pkcs7-signature p7s 否 是
application/x-sh sh 是 是
application/x-shar shar 是 是
application/x-stuffit sit 否 是
application/x-sv4cpio sv4cpio 是 是
application/x-sv4crc sv4crc 是 是
application/x-tar tar 是 是
application/x-tcl tcl 是 是
application/x-tex tex 是 是
application/x-texinfo texi 是 是
application/x-texinfo texinfo 是 是
application/x-troff roff 是 是
application/x-troff t 是 是
application/x-troff tr 是 是
application/x-troff-man man 是 是
application/x-troff-me me 是 是
application/x-troff-ms ms 是 是
application/x-ustar ustar 是 是
application/x-wais-source src 是 是
application/x-x509-ca-cert cer 否 是
application/x-x509-ca-cert crt 否 是
application/x-x509-ca-cert der 否 是
application/ynd.ms-pkipko pko 否 是
application/zip zip 是 是
audio/basic au 是 是
audio/basic snd 是 是
audio/mid mid 否 是
audio/mid rmi 否 是
audio/mpeg mp3 否 是
audio/x-aiff aif 是 是
audio/x-aiff aifc 是 是
audio/x-aiff aiff 是 是
audio/x-mpegurl m3u 否 是
audio/x-pn-realaudio ra 是 是
audio/x-pn-realaudio ram 是 是
audio/x-wav wav 是 是
image/bmp bmp 是 是
image/cis-cod cod 是 是
image/gif gif 是 是
image/ief ief 是 是
image/jpeg jpe 是 是
image/jpeg jpeg 是 是
image/jpeg jpg 是 是
image/pipeg jfif 否 是
image/tiff tif 是 是
image/tiff tiff 是 是
image/x-cmu-raster ras 是 是
image/x-cmx cmx 是 是
image/x-icon ico 否 是
image/x-portable-anymap pnm 是 是
image/x-portable-bitmap pbm 是 是
image/x-portable-graymap pgm 是 是
image/x-portable-pixmap ppm 是 是
image/x-rgb rgb 是 是
image/x-xbitmap xbm 是 是
image/x-xpixmap xpm 是 是
image/x-xwindowdump xwd 是 是
message/rfc822 mht 否 是
message/rfc822 mhtml 否 是
message/rfc822 nws 否 是
text/css css 否 是
text/h323 323 否 是
text/html htm 是 是
text/html html 是 是
text/html stm 是 是
text/iuls uls 否 是
text/plain bas 是 是
text/plain c 是 是
text/plain h 是 是
text/plain txt 是 是
text/richtext rtx 是 是
text/scriptlet sct 否 是
text/tab-separated-values tsv 是 是
text/webviewhtml htt 否 是
text/x-component htc 否 是
text/x-setext etx 是 是
text/x-vcard vcf 否 是
video/mpeg mp2 是 是
video/mpeg mpa 是 是
video/mpeg mpe 是 是
video/mpeg mpeg 是 是
video/mpeg mpg 是 是
video/mpeg mpv2 是 是
video/quicktime mov 是 是
video/quicktime qt 是 是
video/x-la-asf lsf 否 是
video/x-la-asf lsx 否 是
video/x-ms-asf asf 否 是
video/x-ms-asf asr 否 是
video/x-ms-asf asx 否 是
video/x-msvideo avi 是 是
video/x-sgi-movie movie 是 是
x-world/x-vrml flr 是 是
x-world/x-vrml vrml 是 是
x-world/x-vrml wrl 是 是
x-world/x-vrml wrz 是 是
x-world/x-vrml xaf 是 是
x-world/x-vrml xof 是 是
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值