职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 3739|回复: 2

我想问一下关于web方面的知识

[复制链接]
蓝色梦幻 发表于 2006-4-30 16:38 | 显示全部楼层 |阅读模式
我想有没有高手帮我详细介绍一下“MIME”类型
joe 发表于 2006-4-30 20:09 | 显示全部楼层
<p>简单的解释:</p><p><br/>MIME 是 Multipurpose Internet Mail Extensions 的缩写. 原始的定义在 <a href="http://www.hunnysoft.com/mime/">http://www.hunnysoft.com/mime/</a> 可以查看到: </p><p> MIME means Multipurpose Internet Mail Extensions, and refers to an<br/> official Internet standard that specifies how messages must be formatted<br/> so that they can be exchanged between different email systems.</p><p><br/>xLonestar 对 MIME 做了如下解释:</p><p>历史上有很多技术,发明的初衷和最后的用途大相径庭,比如大家都在用的“PS/2 鼠标接口”,其名称来源“IBM PS/2 个人电脑”早已经去世多年了。</p><p>MIME 与此类似。这个名字很难懂,简单的说就是实现了在 email 中携带“附件”。不要认为携带附件对电子邮件来说是天经地义的,想想看,一份电子邮件就是个纯文本文件,如何在其中再嵌入一个图片?</p><p>注意我们桌面系统中使用的是“MIME type”,而并非“MIME”。当我们成功地在一封 email 中嵌入多个文件(即所谓“多段”,multipart)时,我们需要一种标识每个段落分别是什么类型的机制,这个机制就是 mime-type,参见 RFC2046。它定义了 “type/subtype pairs”的形式,即我们所熟知的如“text/html”,“image/png”等等。</p><p>这个表达形式比传统上的其他方案,比如早期 Windows 的“扩展名”方案要丰富和灵活得多,因此被广泛采用。当我们在 Linux 上构建桌面系统时,我们已经找不到理由不使用这个类型标识方案了</p><p></p><p>有空就详细看一下下面的内容:</p><p>在把输出结果传送到浏览器上的时候,浏览器必须启动应用程序来处理这个输出文档。这可以通过多种类型MIME(多功能网际邮件扩充协议)来完成。在HTTP中,MIME类型被定义在Content-Type header中。</p><p></p><p>例如,架设你要传送一个Microsoft Excel文件到客户端。那么这时的MIME类型就是“application/vnd.ms-excel”。在大多数实际情况中,这个文件然后将传送给Execl来处理(假设我们设定Execl为处理特殊MIME类型的应用程序)。在ASP中,设定MIME类型的方法是通过Response对象的ContentType属性。</p><p></p><ul><h2><p></p><li>多媒体文件格式MIME <p></p></li></h2></ul><p>  最早的HTTP协议中,并没有附加的数据类型信息,所有传送的数据都被客户程序解释为超文本标记语言HTML 文档,而为了支持多媒体数据类型,HTTP协议中就使用了附加在文档之前的MIME数据类型信息来标识数据类型。</p><p>  MIME意为多目Internet邮件扩展,它设计的最初目的是为了在发送电子邮件时附加多媒体数据,让邮件客户程序能根据其类型进行处理。然而当它被HTTP协议支持之后,它的意义就更为显著了。它使得HTTP传输的不仅是普通的文本,而变得丰富多彩。</p><p>  每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。</p><p align="center">常见的MIME类型</p><center><table cellspacing="0" cellpadding="7" width="439" border="0"><tbody><tr><td width="35%">超文本标记语言文本</td><td width="26%">.html,.html</td><td width="40%">text/html</td></tr><tr><td>普通文本</td><td>.txt</td><td>text/plain</td></tr><tr><td>RTF文本</td><td>.rtf</td><td>application/rtf</td></tr><tr><td>GIF图形</td><td>.gif</td><td>image/gif</td></tr><tr><td>JPEG图形</td><td>.ipeg,.jpg</td><td>image/jpeg</td></tr><tr><td>au声音文件</td><td>.au</td><td>audio/basic</td></tr><tr><td>MIDI音乐文件</td><td>mid,.midi</td><td>audio/midi,audio/x-midi</td></tr><tr><td>RealAudio音乐文件</td><td>.ra, .ram</td><td>audio/x-pn-realaudio</td></tr><tr><td>MPEG文件</td><td>.mpg,.mpeg</td><td>video/mpeg</td></tr><tr><td>AVI文件</td><td>.avi</td><td>video/x-msvideo</td></tr><tr><td>GZIP文件</td><td>.gz</td><td>application/x-gzip</td></tr><tr><td>TAR文件</td><td>.tar</td><td>application/x-tar</td></tr></tbody></table></center><p>  Internet中有一个专门组织IANA来确认标准的MIME类型,但Internet发展的太快,很多应用程序等不及IANA来确认他们使用的MIME类型为标准类型。因此他们使用在类别中以x-开头的方法标识这个类别还没有成为标准,例如:x-gzip,x-tar等。事实上这些类型运用的很广泛,已经成为了事实标准。只要客户机和服务器共同承认这个MIME类型,即使它是不标准的类型也没有关系,客户程序就能根据MIME类型,采用具体的处理手段来处理数据。而Web服务器和浏览器(包括操作系统)中,缺省都设置了标准的和常见的MIME类型,只有对于不常见的 MIME类型,才需要同时设置服务器和客户浏览器,以进行识别。</p><p>  由于MIME类型与文档的后缀相关,因此服务器使用文档的后缀来区分不同文件的MIME类型,服务器中必须定义文档后缀和MIME类型之间的对应关系。而客户程序从服务器上接收数据的时候,它只是从服务器接受数据流,并不了解文档的名字,因此服务器必须使用附加信息来告诉客户程序数据的MIME类型。服务器在发送真正的数据之前,就要先发送标志数据的MIME类型的信息,这个信息使用Content-type关键字进行定义,例如对于HTML文档,服务器将首先发送以下两行MIME标识信息,这个标识并不是真正的数据文件的一部分。</p><p>  Content-type: text/html</p><p>  注意,第二行为一个空行,这是必须的,使用这个空行的目的是将MIME信息与真正的数据内容分隔开。</p><p></p>
 楼主| 蓝色梦幻 发表于 2006-5-3 01:31 | 显示全部楼层
谢谢!
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-5-1 02:56 , Processed in 0.125973 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表