天天看點

MIME類型Content-type

原文位址1: http://hi.baidu.com/hankers/item/e81040cc3c347fd596445294 原文位址2: http://blog.csdn.net/honkerhero/article/details/4254853 原文位址3: http://blog.csdn.net/snakeqi/article/details/5457043

MIME Type 與 Content-Type 的關系

首先看看tomcat伺服器中預設的web.xml中的描述:

<!-- ===================== Default MIME Type Mappings =================== -->

<!-- When serving static resources, Tomcat will automatically generate    -->

<!-- a "Content-Type" header based on the resource's filename extension, -->

<!-- based on these mappings. Additional mappings can be added here (to -->

<!-- apply to all web applications), or in your own application's web.xml -->

<!-- deployment descriptor.                                               -->

再看看apache伺服器中mime.types的描述:

# This file controls what Internet media types are sent to the client for

# given file extension(s). Sending the correct media type to the client

# is important so they know how to handle the content of the file.

# Extra types can either be added here or by using an AddType directive

# in your config files. For more information about Internet media types,

# please read RFC 2045, 2046, 2047, 2048, and 2077. The Internet media type

# registry is at <http://www.iana.org/assignments/media-types/>.

當web伺服器收到靜态的資源檔案請求時,依據請求檔案的字尾名在伺服器的MIME配置檔案中找到對應的MIME Type,

再根據MIME Type設定HTTP Response的Content-Type,然後浏覽器根據Content-Type的值處理檔案。

浏覽器對Content-Type的處理方式都可以設定:

    IE:同檔案浏覽器,【控制台】->【檔案夾選項】->【檔案類型】中修改。

    Firefox:【工具】->【選項】->【應用程式】中修改。

    Opera:【工具】->【首選項】->【進階】->【下載下傳】中修改。

附:

    MIME 參考手冊:http://www.w3school.com.cn/media/media_mimeref.asp

    MIME定義:http://zh.wikipedia.org/w/index.php?title=MIME&variant=zh-hans

MIME   MIME類型就是設定某種擴充名的檔案用一種應用程式來打開的方式類型,當該擴充名檔案被通路的時候,浏覽器會自動使用指定應用程式來打開。多用于指定一些用戶端自定義的檔案名,以及一些媒體檔案打開方式。

  MIME的英文全稱是"Multipurpose Internet MailExtensions" 多功能Internet郵件擴充服務,它是一種多用途網際郵件擴充協定,在1992年最早應用于電子郵件系統,但後來也應用到浏覽器。伺服器會将它們發送的多媒體資料的類型告訴浏覽器,而通知手段就是說明該多媒體資料的MIME類型,進而讓浏覽器知道接收到的資訊哪些是MP3檔案,哪些是Shockwave檔案等等。伺服器将MIME标志符放入傳送的資料中來告訴浏覽器使用哪種插件讀取相關檔案。

  MIME能夠支援非ASCII字元、二進制格式附件等多種格式的郵件消息。這個标準被定義在;RFC 2045,; RFC 2046,; RFC 2047,; RFC 2048,; RFC 2049等RFC中。 由RFC822轉變而來的RFC2822,規定電子郵件标準并不允許在郵件消息中使用7位ASCII字元集以外的字元。正因如此,一些非英語字元消息和二進制檔案,圖像,聲音等非文字消息都不能在電子郵件中傳輸。MIME規定了用于表示各種各樣的資料類型的符号化方法。

  浏覽器接收到檔案後,會進入插件系統進行查找,查找出哪種插件可以識别讀取接收到的檔案。如果浏覽器不清楚調用哪種插件系統,它可能會告訴使用者缺少某插件,或者直接選擇某現有插件來試圖讀取接收到的檔案,後者可能會導緻系統的崩潰。傳輸的資訊中缺少MIME辨別可能導緻的情況很難估計,因為某些計算機系統可能不會出現什麼故障,但某些計算機可能就會是以而崩潰。

  檢查一個伺服器是否正确設定了MIME類型的步驟是:

  1. 在Netscape浏覽器中打開伺服器網頁

  2. 進入"View"菜單,選擇"Page Info"

  3. 在彈出的視窗中點選上層架構中的"EMBED"

  4.在下層架構中檢視MIME的類型是否為"application/x-director"或"application/x-shockwave-flash",如果是上述資訊的話表明伺服器已經正确設定了MIME類型;而如果MIME類型列出的是文本内容、八位一組的資料或是其它形式均表明伺服器的MIME類型沒有設定正确。

  如果伺服器沒有正确标明其發送的資料的類型,伺服器管理者應該正确添加相關資訊,具體操作方法非常簡單快捷。

  Microsoft公司應用于Windows系統下的浏覽器使用ActiveX控件,而不是Netscape插件,這種浏覽器不必象其它浏覽器那樣依靠MIME的編碼。"OBJECT"标簽的"CLSID"屬性準确地标明了應調用哪種程式來讀取接收到的檔案,是以浏覽器不必象"EMBED"标簽那樣選擇一種讀取程式。正因為如此,你往往會在使用帶插件的浏覽器時遇到MIME問題,而使用ActiveX控件的浏覽器則很少出現此類麻煩。

  正由于上述工作方式的差别也解釋了一種現象,不知你是否發現在使用Netscape浏覽器播放WAV檔案時,浏覽器會調用LiveConnect插件進行播放,而其它浏覽器一般都使用通用的QuickTime的播放插件等來進行播放,這是因為Netscape浏覽器接收檔案需要讀取MIME辨別符,以便決定調用哪種程式來讀取接收的檔案,而伺服器設定在Netscape浏覽器中播放WAV檔案應使用LiveConnect插件,是以Netscape浏覽器接收到WAV格式的檔案時必然就會調用LiveConnect插件,但由于其它浏覽器不使用這種方式,是以它們都使用系統預設的播放WAV格式檔案的播放器。當然Flash電影檔案并不存在這種問題,因為隻有Flash播放器才能夠正确讀取這種格式的檔案。

  在把輸出結果傳送到浏覽器上的時候,浏覽器必須啟動适當的應用程式來處理這個輸出文檔。這可以通過多種類型MIME(多功能網際郵件擴充協定)來完成。在HTTP中,MIME類型被定義在Content-Type header中。

  例如,假設你要傳送一個MicrosoftExcel檔案到用戶端。那麼這時的MIME類型就是“application/vnd.ms-excel”。在大多數實際情況中,這個檔案然後将傳送給Execl來處理(假設我們設定Execl為處理特殊MIME類型的應用程式)。在ASP中,設定MIME類型的方法是通過Response對象的ContentType屬性。

  多媒體檔案格式MIME

  最早的HTTP協定中,并沒有附加的資料類型資訊,所有傳送的資料都被客戶程式解釋為超文本标記語言HTML 文檔,而為了支援多媒體資料類型,HTTP協定中就使用了附加在文檔之前的MIME資料類型資訊來辨別資料類型。

  MIME意為多目Internet郵件擴充,它設計的最初目的是為了在發送電子郵件時附加多媒體資料,讓郵件客戶程式能根據其類型進行處理。然而當它被HTTP協定支援之後,它的意義就更為顯著了。它使得HTTP傳輸的不僅是普通的文本,而變得豐富多彩。

  每個MIME類型由兩部分組成,前面是資料的大類别,例如聲音audio、圖象p_w_picpath等,後面定義具體的種類。

  常見的MIME類型

  超文本标記語言文本 .html,.html text/html

  普通文本 .txt text/plain

  RTF文本 .rtf application/rtf

  GIF圖形 .gif p_w_picpath/gif

  JPEG圖形 .jpeg,.jpg p_w_picpath/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利用了一個事實就是,RFC822在消息體的内容中做了一點限制:唯一的限制就是隻能使用簡單的ASCII文本。是以,MIME資訊由正常的Internet文本郵件組成,文本郵件擁有一些特别的符合RFC 822的資訊頭和格式化過的資訊體(用ASCII的子集來表示的附件)。這些MIME頭給出了一種在郵件中表示附件的特别的方法。

  MIME資訊的剖析

  一個普通的文本郵件的資訊包含一個頭部分(To: From: Subject:等等)和一個體部分(HelloMr.,等等)。在一個符合MIME的資訊中,也包含一個資訊頭并不奇怪,郵件的各個部分叫做MIME段,每段前也綴以一個特别的頭。MIME郵件隻是基于RFC 822郵件的一個擴充。然而它有着自己的RFC規範集。

  頭字段

  MIME頭根據在郵件包中的位置,大體上分為MIME資訊頭和MIME段頭。(譯者:MIME資訊頭指整個郵件的頭,而MIME段頭隻每個MIME段的頭。)

  MIME資訊頭有:

  MIME-Version:

  這個頭提供了所用MIME的版本号。這個值習慣上為1.0。

  Content-Type:

  它定義了資料的類型,以便資料能被适當的處理。有效的類型有:text,

  p_w_picpath,audio,video,applications,multipart和message。注意任何一個二進制附件都應該被叫做application/octet-stream。這個頭的一些用例為:p_w_picpath/jpg,application/mswork,multipart/mixed,這隻是很少的一部分。

  Content-Transfer-Encoding:

  這是所有頭中最重要的一個,因為它說明了對資料所執行的編碼方式,客

  戶/MUA 将用它對附件進行解碼。對于每個附件,可以使用7bit,8bit,

  binary,quoted-printable,base64和custom中的一種編碼方式。7bit編碼是用在USASCII字元集上的常用的一種編碼方式,也就是,保持它的原樣。8bit和binary編碼一般不用。對人類可讀的标準文本,如果傳輸要經過對格式有影響的網關時對其進行保護,可以使用quoted printable。Base64是一種通用方法,在需要決定使用哪一種編碼方法時,它提供了一個不用費腦子的選擇;它通常用在二進制,非文本資料上。注意,任何非7bit資料必須用一種模式編碼,這樣它就可以通過Internet郵件網關!

  Content-ID:

  如果Content-Type是message/external-body或multipart/alternative時,這個

  頭就有用了。它超出了本文的範圍。

  Content-Description:

  這是一個可選的頭。它是任何資訊段内容的自由文本描述。描述必須使用us-ascii碼。

  Content-Disposition:

  一個試驗性的頭,它用于給客戶程式/MUA提供提示,來決定是否在行内顯示附件或作為單獨的附件。

  MIME段頭(出現在實際的MIME附件部分的頭),除了MIME-Version頭,可以擁有以上任何頭字段。如果一個MIME頭是資訊塊的一部分,它将作用于整個資訊體。例如,如果Content-Transfer-Encoding顯示在資訊(指整個資訊)頭中,它應用于整個資訊體,但是如果它顯示在一個MIME段裡,它"隻能"用于那個段中.

http://www.utoronto.ca/webdocs/HTMLdocs/Book/Book-3ed/appb/mimetype.html

Description of Data Content Typical Filename Extensions MIME type/subtype
Text and Text-Related Types
HTML text data (RFC 1866) html htm text/html
Plain text: documents; program listings txt c c++ pl cc h text/plain
Richtext (obsolete - replaced by text/enriched) text/richtext
Structure enhanced text (etx?) text/x-setext
Enriched text markup (RFC 1896) text/enriched
Tab-separated values (tabular) (tsv?) text/tab-separated-values
SGML documents (RFC 1874) text/sgml
Speech synthesis data (MVP Solutions) talk text/x-speech
Document Stylesheet Types
Cascading Stylesheets css text/css
DSSSL-online stylesheets application/dsssl (proposed)
Image Types
GIF gif p_w_picpath/gif
X-Windows bitmap (b/w) xbm p_w_picpath/x-xbitmap
X-Windows pixelmap (8-bit color) xpm p_w_picpath/x-xpixmap
Portable Network Graphics png p_w_picpath/x-png
Image Exchange Format (RFC 1314) ief p_w_picpath/ief
JPEG jpeg jpg jpe p_w_picpath/jpeg
TIFF tiff tif p_w_picpath/tiff
RGB rgb p_w_picpath/rgb
p_w_picpath/x-rgb
Group III Fax (RFC 1494) g3f p_w_picpath/g3fax
X Windowdump format xwd p_w_picpath/x-xwindowdump
Macintosh PICT format pict p_w_picpath/x-pict
PPM (UNIX PPM package) ppm p_w_picpath/x-portable-pixmap
PGM (UNIX PPM package) pgm p_w_picpath/x-portable-graymap
PBM (UNIX PPM package) pbm p_w_picpath/x-portable-bitmap
PNM (UNIX PPM package) pnm p_w_picpath/x-portable-anymap
Microsoft Windows bitmap bmp p_w_picpath/x-ms-bmp
CMU raster ras p_w_picpath/x-cmu-raster
Kodak Photo-CD pcd p_w_picpath/x-photo-cd
Computer Graphics Metafile cgm p_w_picpath/cgm
North Am. Presentation Layer Protocol p_w_picpath/naplps
CALS Type 1 or 2 mil cal p_w_picpath/x-cals
Fractal Image Format (Iterated Systems) fif p_w_picpath/fif
QuickSilver active p_w_picpath (Micrografx) dsf p_w_picpath/x-mgx-dsf
CMX vector p_w_picpath (Corel) cmx p_w_picpath/x-cmx
Wavelet-compressed (Summus) wi p_w_picpath/wavelet
AutoCad Drawing (SoftSource) dwg p_w_picpath/vnd.dwg
p_w_picpath/x-dwg
AutoCad DXF file (SoftSource) dxf p_w_picpath/vnd.dxf
p_w_picpath/x-dxf
Simple Vector Format (SoftSource) svf p_w_picpath/vnd.svf
also vector/x-svf
Audio/Voice/Music Related Types
"basic"audio - 8-bit u-law PCM au snd audio/basic
Macintosh audio format (AIpple) aif aiff aifc audio/x-aiff
Microsoft audio wav audio/x-wav
MPEG audio mpa abs mpega audio/x-mpeg
MPEG-2 audio mp2a mpa2 audio/x-mpeg-2
compressed speech (Echo Speech Corp.) es audio/echospeech
Toolvox speech audio (Voxware) vox audio/voxware
RapidTransit compressed audio (Fast Man) lcc application/fastman
Realaudio (Progressive Networks) ra ram application/x-pn-realaudio
NIFF music notation data format application/vnd.music-niff
MIDI music data mmid x-music/x-midi
Koan music data (SSeyo) skp application/vnd.koan
application/x-koan
Video Types
MPEG video mpeg mpg mpe video/mpeg
MPEG-2 video mpv2 mp2v video/mpeg-2
Macintosh Quicktime qt mov video/quicktime
Microsoft video avi video/x-msvideo
SGI Movie format movie video/x-sgi-movie
VDOlive streaming video (VDOnet) vdo video/vdo
Vivo streaming video (Vivo software) viv video/vnd.vivo
video/vivo
Special HTTP/Web Application Types
Proxy autoconfiguration (Netscape browsers) pac application/x-ns-proxy-autoconfig
See Chapter 6 application/x-www-form-urlencoded
See Chapter 9 application/x-www-local-exec
See Chapter 9 (Netscape extension) multipart/x-mixed-replace
See Chapter 9 and Appendix B multipart/form-data
Netscape Cooltalk chat data (Netscape) ice x-conference/x-cooltalk
Interactive chat (Ichat) application/x-chat
Application Types
Text-Related
PostScript ai eps ps application/postscript
Microsoft Rich Text Format rtf application/rtf
Adobe Acrobat PDF pdf application/pdf
application/x-pdf
Maker Interchange Format (FrameMaker) mif application/vnd.mif
application/x-mif
Troff document t tr roff application/x-troff
Troff document with MAN macros man application/x-troff-man
Troff document with ME macros me application/x-troff-me
Troff document with MS macros ms application/x-troff-ms
LaTeX document latex application/x-latex
Tex/LateX document tex application/x-tex
GNU TexInfo document texinfo texi application/x-texinfo
TeX dvi format dvi application/x-dvi
MacWrite document ?? application/macwriteii
MS word document application/msword
WordPerfect 5.1 document application/wordperfect5.1
SGML application (RFC 1874) application/sgml
Office Document Architecture oda application/oda
Envoy Document evy application/envoy
Wang Info. Tranfer Format (Wang) application/wita
DEC Document Transfer Format (DEC) application/dec-dx
IBM Document Content Architecture (IBM) application/dca-rft
CommonGround Digital Paper (No Hands Software) application/commonground
FrameMaker Documents (Frame) doc fm frm frame application/vnd.framemaker
application/x-framemaker
Remote printing at arbitrary printers (RFC 1486) application/remote-printing
Archive/Compressed Archives
Gnu tar format gtar application/x-gtar
4.3BSD tar format tar application/x-tar
POSIX tar format ustar application/x-ustar
Old CPIO format bcpio application/x-bcpio
POSIX CPIO format cpio application/x-cpio
UNIX sh shell archive shar application/x-shar
DOS/PC - Pkzipped archive zip application/zip
Macintosh Binhexed archive hqx application/mac-binhex40
Macintosh Stuffit Archive sit sea application/x-stuffit
Fractal Image Format application/fractals
Binary, UUencoded bin uu application/octet-stream
PC executable exe
WAIS "sources" src wsrc application/x-wais-source
NCSA HDF data format hdf application/hdf
Downloadable Program/Scripts
Javascript program js ls mocha text/javascript
application/x-javascript
VBScript program text/vbscript
UNIX bourne shell program sh application/x-sh
UNIX c-shell program csh application/x-csh
Perl program pl application/x-perl
Tcl (Tool Control Language) program tcl application/x-tcl
Atomicmail program scripts (obsolete) application/atomicmail
Slate documents - executable enclosures (BBN) application/slate
Undefined binary data (often executable progs)
RISC OS Executable programs (ANT Limited) application/riscos
Animation/Multimedia
Andrew Toolkit inset application/andrew-inset
FutureSplash vector animation (FutureWave) spl application/futuresplash
mBED multimedia data (mBED) mbd application/mbedlet
Macromedia Shockwave (Macromedia) application/x-director
Sizzler real-time video/animation application/x-sprite
PowerMedia multimedia (RadMedia) rad application/x-rad-powermedia
Presentation
PowerPoint presentation (Microsoft) ppz application/mspowerpoint
PointPlus presentation data (Net Scene) application/x-pointplus
ASAP WordPower (Software Publishing Corp.) asp application/x-asap
Astound Web Player multimedia data (GoldDisk) asn application/astound
Special Embedded Object
OLE script e.g. Visual Basic (Ncompass) axs application/x-olescript
OLE Object (Microsoft/NCompass) ods application/x-oleobject
OpenScape OLE/OCX objects (Business@Web) opp x-form/x-openscape
Visual Basic objects (Amara) wba application/x-webbasic
Specialized data entry forms (Alpha Software) frm application/x-alpha-form
client-server objects (Wayfarer Communications) wfx x-script/x-wfxclient
General Applications
CALS (U.S. D.O.D data format - RFC 1895) application/cals-1840
Pointcast news data (Pointcast) pcn application/x-pcn
Excel spreadsheet (Microsoft) application/vnd.ms-excel
application/x-msexcel
application/ms-excel
PowerPoint (Microsoft) ppt application/vnd.ms-powerpoint
application/ms-powerpoint
Microsoft Project (Microsoft) application/vnd.ms-project
Works data (Microsoft) application/vnd.ms-works
MAPI data (Microsoft) application/vnd.ms-tnef
Artgallery data (Microsoft) application/vnd.artgalry
SourceView document (Dataware Electronics) svd application/vnd.svd
Truedoc (Bitstream) application/vnd.truedoc
Net Install - software install (20/20 Software) ins application/x-net-install
Carbon Copy - remote control/access (Microcom) ccv application/ccv
Spreadsheets (Visual Components) vts workbook/formulaone
Cybercash digital money (Cybercash) application/cybercash
Format for sending generic Macintosh files application/applefile
Active message -- connect to active mail app. application/activemessage
X.400 mail message body part (RFC 1494) application/x400-bp
USENET news message id (RFC 1036) application/news-message-id
USENET news message (RFC 1036) application/news-transmission
Multipart Types (mostly email)
Messages with multiple parts multipart/mixed
Messages with multiple, alternative parts multipart/alternative
Message with multiple, related parts multipart/related
Multiple parts are digests multipart/digest
For reporting of email status (admin.) multipart/report
Order of parts does not matter multipart/parallel
Macintosh file data multipart/appledouble
Aggregate messages; descriptor as header multipart/header-set
Container for voice-mail multipart/voice-message
HTML FORM data (see Ch. 9 and App. B)
Infinite multiparts - See Chapter 9 (Netscape)
Message Types (mostly email)
MIME message message/rfc822
Partial message message/partial
Message containing external references message/external-body
Message containing USENET news message/news
HTTP message message/http
2D/3D Data/Virtual Reality Types
VRML data file wrl vrml x-world/x-vrml (changing to model/vrml)
WIRL - VRML data (VREAM) vrw x-world/x-vream
Play3D 3d scene data (Play3D) p3d application/x-p3d
Viscape Interactive 3d world data (Superscape) svr x-world/x-svr
WebActive 3d data (Plastic Thought) wvr x-world/x-wvr
QuickDraw3D scene data (Apple) 3dmf x-world/x-3dmf
Scientific/Math/CAD Types
Chemical types -- to communicate information about chemical models chemical/* (several subtypes)
Mathematica notebook ma application/mathematica
Computational meshes for numerical simulations msh x-model/x-mesh(evolving to model/mesh)
Vis5D 5-dimensional data v5d application/vis5d
IGES models -- CAD/CAM (CGM) data igs application/iges(evolving to model/iges?)
Autocad WHIP vector drawings dwf drawing/x-dwf
Largely Platform-Specific Types
Silicon Graphics Specific Types
Showcase Presentations showcase slides sc sho show application/x-showcase
Insight Manual pages ins insight application/x-insight
Iris Annotator data ano application/x-annotator
Directory Viewer dir application/x-dirview
Software License lic application/x-enterlicense
Fax manager file faxmgr application/x-fax-manager
Fax job data file faxmgrjob application/x-fax-manager-job
IconBook data icnbk application/x-iconbook
? wb application/x-inpview
Installable software in 'inst' format inst application/x-install
Mail folder mail application/x-mailfolder
pp ppages application/x-ppages
Data for printer (via lpr) sgi-lpr application/x-sgi-lpr
Software in 'tardist' format tardist application/x-tardist
Software in compressed 'tardist' format ztardist application/x-ztardist
WingZ spreadsheet wkz application/x-wingz
Open Inventor 3-D scenes iv graphics/x-inventor

  

繼續閱讀