什么是 MIME TYPE?

一、首先,我们要了解浏览器是如何处理内容的。在浏览器中显示的内容有 HTML、有 XML、有 GIF、还有 Flash ……那么,浏览器是如何区分它们,决定什么内容用什么形式来显示呢?答案是 MIME Type,也就是该资源的媒体类型。

媒体类型通常是通过 HTTP 协议,由 Web 服务器告知浏览器的,更准确地说,是通过 Content-Type 来表示的,例如:

Content-Type: text/HTML

表示内容是 text/HTML 类型,也就是超文本文件。为什么是“text/HTML”而不是“HTML/text”或者别的什么?MIME Type 不是个人指定的,是经过 ietf 组织协商,以 RFC 的形式作为建议的标准发布在网上的,大多数的 Web 服务器和用户代理都会支持这个规范 (顺便说一句,Email 附件的类型也是通过 MIME Type 指定的)。

通常只有一些在互联网上获得广泛应用的格式才会获得一个 MIME Type,如果是某个客户端自己定义的格式,一般只能以 application/x- 开头。

XHTML 正是一个获得广泛应用的格式,因此,在 RFC 3236 中,说明了 XHTML 格式文件的 MIME Type 应该是 application/xHTML+XML。

当然,处理本地的文件,在没有人告诉浏览器某个文件的 MIME Type 的情况下,浏览器也会做一些默认的处理,这可能和你在操作系统中给文件配置的 MIME Type 有关。比如在 Windows 下,打开注册表的“HKEY_LOCAL_MACHINESOFTWAREClassesMIMEDatabaseContent Type”主键,你可以看到所有 MIME Type 的配置信息。
 
二、在把输出结果传送到浏览器上的时候,浏览器必须启动适当的应用程序来处理这个输出文档。这可以通过多种类型MIME(多功能网际邮件扩充协议)来完成。在HTTP中,MIME类型被定义在Content-Type header中。

例如,架设你要传送一个Microsoft Excel文件到客户端。那么这时的MIME类型就是“application/vnd.ms-excel”。在大多数实际情况中,这个文件然后将传送给Execl来处理(假设我们设定Execl为处理特殊MIME类型的应用程序)。在ASP中,设定MIME类型的方法是通过Response对象的ContentType属性。


多媒体文件格式MIME

最早的HTTP协议中,并没有附加的数据类型信息,所有传送的数据都被客户程序解释为超文本标记语言HTML 文档,而为了支持多媒体数据类型,HTTP协议中就使用了附加在文档之前的MIME数据类型信息来标识数据类型。

MIME意为多目Internet邮件扩展,它设计的最初目的是为了在发送电子邮件时附加多媒体数据,让邮件客户程序能根据其类型进行处理。然而当它被HTTP协议支持之后,它的意义就更为显著了。它使得HTTP传输的不仅是普通的文本,而变得丰富多彩。

每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。

常见的MIME类型

超文本标记语言文本 .html,.html text/html
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
GIF图形 .gif image/gif
JPEG图形 .ipeg,.jpg image/jpeg
au声音文件 .au audio/basic
MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
TAR文件 .tar application/x-tar

Internet中有一个专门组织IANA来确认标准的MIME类型,但Internet发展的太快,很多应用程序等不及IANA来确认他们使用的MIME类型为标准类型。因此他们使用在类别中以x-开头的方法标识这个类别还没有成为标准,例如:x-gzip,x-tar等。事实上这些类型运用的很广泛,已经成为了事实标准。只要客户机和服务器共同承认这个MIME类型,即使它是不标准的类型也没有关系,客户程序就能根据MIME类型,采用具体的处理手段来处理数据。而Web服务器和浏览器(包括操作系统)中,缺省都设置了标准的和常见的MIME类型,只有对于不常见的 MIME类型,才需要同时设置服务器和客户浏览器,以进行识别。

由于MIME类型与文档的后缀相关,因此服务器使用文档的后缀来区分不同文件的MIME类型,服务器中必须定义文档后缀和MIME类型之间的对应关系。而客户程序从服务器上接收数据的时候,它只是从服务器接受数据流,并不了解文档的名字,因此服务器必须使用附加信息来告诉客户程序数据的MIME类型。服务器在发送真正的数据之前,就要先发送标志数据的MIME类型的信息,这个信息使用Content-type关键字进行定义,例如对于HTML文档,服务器将首先发送以下两行MIME标识信息,这个标识并不是真正的数据文件的一部分。

Content-type: text/html

注意,第二行为一个空行,这是必须的,使用这个空行的目的是将MIME信息与真正的数据内容分隔开。

MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。
MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。
官方的 MIME 信息是由 Internet Engineering Task Force (IETF) 在下面的文档中提供的:
RFC-822 Standard for ARPA Internet text messages

RFC-2045 MIME Part 1: Format of Internet Message Bodies
RFC-2046 MIME Part 2: Media Types
RFC-2047 MIME Part 3: Header Extensions for Non-ASCII Text
RFC-2048 MIME Part 4: Registration Procedures
RFC-2049 MIME Part 5: Conformance Criteria and Examples
不同的应用程序支持不同的 MIME 类型。

Suffixes applicable Media type and subtype(s) .3dm x-world/x-3dmf .3dmf x-world/x-3dmf .a application/octet-stream .aab application/x-authorware-bin .aam application/x-authorware-map .aas application/x-authorware-seg .abc text/vnd.abc .acgi text/html .afl video/animaflex .ai application/postscript .aif audio/aiff .aif audio/x-aiff .aifc audio/aiff .aifc audio/x-aiff .aiff audio/aiff .aiff audio/x-aiff .aim application/x-aim .aip text/x-audiosoft-intra .ani application/x-navi-animation .aos application/x-nokia-9000-communicator-add-on-software .aps application/mime .arc application/octet-stream .arj application/arj .arj application/octet-stream .art image/x-jg .asf video/x-ms-asf .asm text/x-asm .asp text/asp .asx application/x-mplayer2 .asx video/x-ms-asf .asx video/x-ms-asf-plugin .au audio/basic .au audio/x-au .avi application/x-troff-msvideo .avi video/avi .avi video/msvideo .avi video/x-msvideo .avs video/avs-video .bcpio application/x-bcpio .bin application/mac-binary .bin application/macbinary .bin application/octet-stream .bin application/x-binary .bin application/x-macbinary .bm image/bmp .bmp image/bmp .bmp image/x-windows-bmp .boo application/book .book application/book .boz application/x-bzip2 .bsh application/x-bsh .bz application/x-bzip .bz2 application/x-bzip2 .c text/plain .c text/x-c .c++ text/plain .cat application/vnd.ms-pki.seccat .cc text/plain .cc text/x-c .ccad application/clariscad .cco application/x-cocoa .cdf application/cdf .cdf application/x-cdf .cdf application/x-netcdf .cer application/pkix-cert .cer application/x-x509-ca-cert .cha application/x-chat .chat application/x-chat .class application/java .class application/java-byte-code .class application/x-java-class .com application/octet-stream .com text/plain .conf text/plain .cpio application/x-cpio .cpp text/x-c .cpt application/mac-compactpro .cpt application/x-compactpro .cpt application/x-cpt .crl application/pkcs-crl .crl application/pkix-crl .crt application/pkix-cert .crt application/x-x509-ca-cert .crt application/x-x509-user-cert .csh application/x-csh .csh text/x-script.csh .css application/x-pointplus .css text/css .cxx text/plain .dcr application/x-director .deepv application/x-deepv .def text/plain .der application/x-x509-ca-cert .dif video/x-dv .dir application/x-director .dl video/dl .dl video/x-dl .doc application/msword .dot application/msword .dp application/commonground .drw application/drafting .dump application/octet-stream .dv video/x-dv .dvi application/x-dvi .dwf drawing/x-dwf (old) .dwf model/vnd.dwf .dwg application/acad .dwg image/vnd.dwg .dwg image/x-dwg .dxf application/dxf .dxf image/vnd.dwg .dxf image/x-dwg .dxr application/x-director .el text/x-script.elisp .elc application/x-bytecode.elisp (compiled elisp) .elc application/x-elc .env application/x-envoy .eps application/postscript .es application/x-esrehber .etx text/x-setext .evy application/envoy .evy application/x-envoy .exe application/octet-stream .f text/plain .f text/x-fortran .f77 text/x-fortran .f90 text/plain .f90 text/x-fortran .fdf application/vnd.fdf .fif application/fractals .fif image/fif .fli video/fli .fli video/x-fli .flo image/florian .flx text/vnd.fmi.flexstor .fmf video/x-atomic3d-feature .for text/plain .for text/x-fortran .fpx image/vnd.fpx .fpx image/vnd.net-fpx .frl application/freeloader .funk audio/make .g text/plain .g3 image/g3fax .gif image/gif .gl video/gl .gl video/x-gl .gsd audio/x-gsm .gsm audio/x-gsm .gsp application/x-gsp .gss application/x-gss .gtar application/x-gtar .gz application/x-compressed .gz application/x-gzip .gzip application/x-gzip .gzip multipart/x-gzip .h text/plain .h text/x-h .hdf application/x-hdf .help application/x-helpfile .hgl application/vnd.hp-hpgl .hh text/plain .hh text/x-h .hlb text/x-script .hlp application/hlp .hlp application/x-helpfile .hlp application/x-winhelp .hpg application/vnd.hp-hpgl .hpgl application/vnd.hp-hpgl .hqx application/binhex .hqx application/binhex4 .hqx application/mac-binhex .hqx application/mac-binhex40 .hqx application/x-binhex40 .hqx application/x-mac-binhex40 .hta application/hta .htc text/x-component .htm text/html .html text/html .htmls text/html .htt text/webviewhtml .htx text/html .ice x-conference/x-cooltalk .ico image/x-icon .idc text/plain .ief image/ief .iefs image/ief .iges application/iges .iges model/iges .igs application/iges .igs model/iges .ima application/x-ima .imap application/x-httpd-imap .inf application/inf .ins application/x-internett-signup .ip application/x-ip2 .isu video/x-isvideo .it audio/it .iv application/x-inventor .ivr i-world/i-vrml .ivy application/x-livescreen .jam audio/x-jam .jav text/plain .jav text/x-java-source .java text/plain .java text/x-java-source .jcm application/x-java-commerce .jfif image/jpeg .jfif image/pjpeg .jfif-tbnl image/jpeg .jpe image/jpeg .jpe image/pjpeg .jpeg image/jpeg .jpeg image/pjpeg .jpg image/jpeg .jpg image/pjpeg .jps image/x-jps .js application/x-javascript .js application/javascript .js application/ecmascript .js text/javascript .js text/ecmascript .jut image/jutvision .kar audio/midi .kar music/x-karaoke .ksh application/x-ksh .ksh text/x-script.ksh .la audio/nspaudio .la audio/x-nspaudio .lam audio/x-liveaudio .latex application/x-latex .lha application/lha .lha application/octet-stream .lha application/x-lha .lhx application/octet-stream .list text/plain .lma audio/nspaudio .lma audio/x-nspaudio .log text/plain .lsp application/x-lisp .lsp text/x-script.lisp .lst text/plain .lsx text/x-la-asf .ltx application/x-latex .lzh application/octet-stream .lzh application/x-lzh .lzx application/lzx .lzx application/octet-stream .lzx application/x-lzx .m text/plain .m text/x-m .m1v video/mpeg .m2a audio/mpeg .m2v video/mpeg .m3u audio/x-mpequrl .man application/x-troff-man .map application/x-navimap .mar text/plain .mbd application/mbedlet .mc$ application/x-magic-cap-package-1.0 .mcd application/mcad .mcd application/x-mathcad .mcf image/vasa .mcf text/mcf .mcp application/netmc .me application/x-troff-me .mht message/rfc822 .mhtml message/rfc822 .mid application/x-midi .mid audio/midi .mid audio/x-mid .mid audio/x-midi .mid music/crescendo .mid x-music/x-midi .midi application/x-midi .midi audio/midi .midi audio/x-mid .midi audio/x-midi .midi music/crescendo .midi x-music/x-midi .mif application/x-frame .mif application/x-mif .mime message/rfc822 .mime www/mime .mjf audio/x-vnd.audioexplosion.mjuicemediafile .mjpg video/x-motion-jpeg .mm application/base64 .mm application/x-meme .mme application/base64 .mod audio/mod .mod audio/x-mod .moov video/quicktime .mov video/quicktime .movie video/x-sgi-movie .mp2 audio/mpeg .mp2 audio/x-mpeg .mp2 video/mpeg .mp2 video/x-mpeg .mp2 video/x-mpeq2a .mp3 audio/mpeg3 .mp3 audio/x-mpeg-3 .mp3 video/mpeg .mp3 video/x-mpeg .mpa audio/mpeg .mpa video/mpeg .mpc application/x-project .mpe video/mpeg .mpeg video/mpeg .mpg audio/mpeg .mpg video/mpeg .mpga audio/mpeg .mpp application/vnd.ms-project .mpt application/x-project .mpv application/x-project .mpx application/x-project .mrc application/marc .ms application/x-troff-ms .mv video/x-sgi-movie .my audio/make .mzz application/x-vnd.audioexplosion.mzz .nap image/naplps .naplps image/naplps .nc application/x-netcdf .ncm application/vnd.nokia.configuration-message .nif image/x-niff .niff image/x-niff .nix application/x-mix-transfer .nsc application/x-conference .nvd application/x-navidoc .o application/octet-stream .oda application/oda .omc application/x-omc .omcd application/x-omcdatamaker .omcr application/x-omcregerator .p text/x-pascal .p10 application/pkcs10 .p10 application/x-pkcs10 .p12 application/pkcs-12 .p12 application/x-pkcs12 .p7a application/x-pkcs7-signature .p7c application/pkcs7-mime .p7c application/x-pkcs7-mime .p7m application/pkcs7-mime .p7m application/x-pkcs7-mime .p7r application/x-pkcs7-certreqresp .p7s application/pkcs7-signature .part application/pro_eng .pas text/pascal .pbm image/x-portable-bitmap .pcl application/vnd.hp-pcl .pcl application/x-pcl .pct image/x-pict .pcx image/x-pcx .pdb chemical/x-pdb .pdf application/pdf .pfunk audio/make .pfunk audio/make.my.funk .pgm image/x-portable-graymap .pgm image/x-portable-greymap .pic image/pict .pict image/pict .pkg application/x-newton-compatible-pkg .pko application/vnd.ms-pki.pko .pl text/plain .pl text/x-script.perl .plx application/x-pixclscript .pm image/x-xpixmap .pm text/x-script.perl-module .pm4 application/x-pagemaker .pm5 application/x-pagemaker .png image/png .pnm application/x-portable-anymap .pnm image/x-portable-anymap .pot application/mspowerpoint .pot application/vnd.ms-powerpoint .pov model/x-pov .ppa application/vnd.ms-powerpoint .ppm image/x-portable-pixmap .pps application/mspowerpoint .pps application/vnd.ms-powerpoint .ppt application/mspowerpoint .ppt application/powerpoint .ppt application/vnd.ms-powerpoint .ppt application/x-mspowerpoint .ppz application/mspowerpoint .pre application/x-freelance .prt application/pro_eng .ps application/postscript .psd application/octet-stream .pvu paleovu/x-pv .pwz application/vnd.ms-powerpoint .py text/x-script.phyton .pyc application/x-bytecode.python .qcp audio/vnd.qcelp .qd3 x-world/x-3dmf .qd3d x-world/x-3dmf .qif image/x-quicktime .qt video/quicktime .qtc video/x-qtc .qti image/x-quicktime .qtif image/x-quicktime .ra audio/x-pn-realaudio .ra audio/x-pn-realaudio-plugin .ra audio/x-realaudio .ram audio/x-pn-realaudio .ras application/x-cmu-raster .ras image/cmu-raster .ras image/x-cmu-raster .rast image/cmu-raster .rexx text/x-script.rexx .rf image/vnd.rn-realflash .rgb image/x-rgb .rm application/vnd.rn-realmedia .rm audio/x-pn-realaudio .rmi audio/mid .rmm audio/x-pn-realaudio .rmp audio/x-pn-realaudio .rmp audio/x-pn-realaudio-plugin .rng application/ringing-tones .rng application/vnd.nokia.ringing-tone .rnx application/vnd.rn-realplayer .roff application/x-troff .rp image/vnd.rn-realpix .rpm audio/x-pn-realaudio-plugin .rt text/richtext .rt text/vnd.rn-realtext .rtf application/rtf .rtf application/x-rtf .rtf text/richtext .rtx application/rtf .rtx text/richtext .rv video/vnd.rn-realvideo .s text/x-asm .s3m audio/s3m .saveme application/octet-stream .sbk application/x-tbook .scm application/x-lotusscreencam .scm text/x-script.guile .scm text/x-script.scheme .scm video/x-scm .sdml text/plain .sdp application/sdp .sdp application/x-sdp .sdr application/sounder .sea application/sea .sea application/x-sea .set application/set .sgm text/sgml .sgm text/x-sgml .sgml text/sgml .sgml text/x-sgml .sh application/x-bsh .sh application/x-sh .sh application/x-shar .sh text/x-script.sh .shar application/x-bsh .shar application/x-shar .shtml text/html .shtml text/x-server-parsed-html .sid audio/x-psid .sit application/x-sit .sit application/x-stuffit .skd application/x-koan .skm application/x-koan .skp application/x-koan .skt application/x-koan .sl application/x-seelogo .smi application/smil .smil application/smil .snd audio/basic .snd audio/x-adpcm .sol application/solids .spc application/x-pkcs7-certificates .spc text/x-speech .spl application/futuresplash .spr application/x-sprite .sprite application/x-sprite .src application/x-wais-source .ssi text/x-server-parsed-html .ssm application/streamingmedia .sst application/vnd.ms-pki.certstore .step application/step .stl application/sla .stl application/vnd.ms-pki.stl .stl application/x-navistyle .stp application/step .sv4cpio application/x-sv4cpio .sv4crc application/x-sv4crc .svf image/vnd.dwg .svf image/x-dwg .svr application/x-world .svr x-world/x-svr .swf application/x-shockwave-flash .t application/x-troff .talk text/x-speech .tar application/x-tar .tbk application/toolbook .tbk application/x-tbook .tcl application/x-tcl .tcl text/x-script.tcl .tcsh text/x-script.tcsh .tex application/x-tex .texi application/x-texinfo .texinfo application/x-texinfo .text application/plain .text text/plain .tgz application/gnutar .tgz application/x-compressed .tif image/tiff .tif image/x-tiff .tiff image/tiff .tiff image/x-tiff .tr application/x-troff .tsi audio/tsp-audio .tsp application/dsptype .tsp audio/tsplayer .tsv text/tab-separated-values .turbot image/florian .txt text/plain .uil text/x-uil .uni text/uri-list .unis text/uri-list .unv application/i-deas .uri text/uri-list .uris text/uri-list .ustar application/x-ustar .ustar multipart/x-ustar .uu application/octet-stream .uu text/x-uuencode .uue text/x-uuencode .vcd application/x-cdlink .vcs text/x-vcalendar .vda application/vda .vdo video/vdo .vew application/groupwise .viv video/vivo .viv video/vnd.vivo .vivo video/vivo .vivo video/vnd.vivo .vmd application/vocaltec-media-desc .vmf application/vocaltec-media-file .voc audio/voc .voc audio/x-voc .vos video/vosaic .vox audio/voxware .vqe audio/x-twinvq-plugin .vqf audio/x-twinvq .vql audio/x-twinvq-plugin .vrml application/x-vrml .vrml model/vrml .vrml x-world/x-vrml .vrt x-world/x-vrt .vsd application/x-visio .vst application/x-visio .vsw application/x-visio .w60 application/wordperfect6.0 .w61 application/wordperfect6.1 .w6w application/msword .wav audio/wav .wav audio/x-wav .wb1 application/x-qpro .wbmp image/vnd.wap.wbmp .web application/vnd.xara .wiz application/msword .wk1 application/x-123 .wmf windows/metafile .wml text/vnd.wap.wml .wmlc application/vnd.wap.wmlc .wmls text/vnd.wap.wmlscript .wmlsc application/vnd.wap.wmlscriptc .word application/msword .wp application/wordperfect .wp5 application/wordperfect .wp5 application/wordperfect6.0 .wp6 application/wordperfect .wpd application/wordperfect .wpd application/x-wpwin .wq1 application/x-lotus .wri application/mswrite .wri application/x-wri .wrl application/x-world .wrl model/vrml .wrl x-world/x-vrml .wrz model/vrml .wrz x-world/x-vrml .wsc text/scriplet .wsrc application/x-wais-source .wtk application/x-wintalk .xbm image/x-xbitmap .xbm image/x-xbm .xbm image/xbm .xdr video/x-amt-demorun .xgz xgl/drawing .xif image/vnd.xiff .xl application/excel .xla application/excel .xla application/x-excel .xla application/x-msexcel .xlb application/excel .xlb application/vnd.ms-excel .xlb application/x-excel .xlc application/excel .xlc application/vnd.ms-excel .xlc application/x-excel .xld application/excel .xld application/x-excel .xlk application/excel .xlk application/x-excel .xll application/excel .xll application/vnd.ms-excel .xll application/x-excel .xlm application/excel .xlm application/vnd.ms-excel .xlm application/x-excel .xls application/excel .xls application/vnd.ms-excel .xls application/x-excel .xls application/x-msexcel .xlt application/excel .xlt application/x-excel .xlv application/excel .xlv application/x-excel .xlw application/excel .xlw application/vnd.ms-excel .xlw application/x-excel .xlw application/x-msexcel .xm audio/xm .xml application/xml .xml text/xml .xmz xgl/movie .xpix application/x-vnd.ls-xpix .xpm image/x-xpixmap .xpm image/xpm .x-png image/png .xsr video/x-amt-showrun .xwd image/x-xwd .xwd image/x-xwindowdump .xyz chemical/x-pdb .z application/x-compress .z application/x-compressed .zip application/x-compressed .zip application/x-zip-compressed .zip application/zip .zip multipart/x-zip .zoo application/octet-stream .zsh text/x-script.zsh
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!