1. 程式人生 > 實用技巧 >MIME型別

MIME型別

MIME型別

1. MIME(Multipurpose Internet Mail Extensions),即多用途網際網路郵件擴充套件型別。

伺服器通過MIME告知響應內容型別,而瀏覽器則通過MIME型別來確定如何處理文件。

2. 當瀏覽器請求一個頁面時,web伺服器會在傳送實際頁面內容之前,先發送一些頭資訊。瀏覽器需要這些資訊來決定如何解析隨後頁面內容。

3. 語法

通用結構 type/subtype

MIME的組成結構非常簡單;由型別與子型別兩個字串中間用’/’分隔而成。不允許空格存在。type表示可以被分多個子類的獨立型別。subtype表示細分後的每個型別。
獨立型別


  text/plain
  text/html
  image/jpeg
  image/png
  audio/mpeg
  audio/ogg
  audio/*
  audio/mp4
  application/*
  application/json
  application/javascript
  application/ecmascript
  application/octet-stream
獨立型別表明了對檔案的分類,可以是如下之一:

型別描述典型型別
text 表名檔案是普通文字,理論是人類可讀 text/plain,text/html,text/css,text/javascript
image 表明是某種圖形。不包括視訊,但是動態圖(gif)也可以使用image型別 image/gif, image/png, image/jpeg, image/bmp, image/webp, image/x-icon, image/vnd.microsoft.icon
audio 表名是某種音訊檔案 audio/midi, audio/mpeg, audio/webm, audio/ogg, audio/wav
video 表明是某種視訊檔案 video/webm, video/ogg
application 表名是某種二進位制 application/octet-stream, application/pkcs12, application/vnd.mspowerpoint, application/xhtml+xml, application/xml, application/pdf

4. 重要的MIME型別

application/octet-stream
  這是應用程式檔案的預設值。意思是未知的應用程式檔案,瀏覽器一般不會自動執行或詢問執行。瀏覽器會像對待設定了HTTP頭Content-Disposition值為attachment的檔案一樣來對待這類檔案。

text/plain
  文字檔案預設值。即使它意味著未知的文字檔案,但瀏覽器認為是可以直接展示的。

text/plain並不意味著某種文字資料。如果瀏覽器想要一個文字檔案的明確型別,瀏覽器並不會考慮他們是否匹配。比如說,如果通過一個表明是下載CSS檔案的連結下載了一個text/plain 檔案。如果提供的資訊是text/plain,瀏覽器並不會認出這是有效的CSS檔案。CSS型別需要使用text/css。

text/css
  在網頁中要被解析為CSS的任何CSS檔案必須指定MIME為text/css。通常,伺服器不識別以.css為字尾的檔案的MIME型別,而是將其以MIME為text/plain 或 application/octet-stream 來發送給瀏覽器:在這種情況下,大多數瀏覽器不識別其為CSS檔案,直接忽略掉。特別要注意為CSS檔案提供正確的MIME型別。

text/html
  所有的HTML內容都應該使用這種型別。XHTML的其他MIME型別(如application/xml+html)現在基本不再使用(HTML5統一了這種格式)。

JavaScript 型別
  據 MIME 嗅探標準,下面是有效的 JavaScript MIME 型別

application/javascript

application/ecmascript

圖片型別
  只有一小部分圖片型別是被廣泛支援的,Web安全的,可隨時在Web頁面中使用的:

MIME 型別圖片型別
image/gif GIF 圖片 (無損耗壓縮方面被PNG所替代)
image/jpeg JPEG 圖片
image/png PNG 圖片
image/svg+xml SVG圖片 (向量圖)

音訊與視訊型別
  HTML並沒有明確定義被用於和元素所支援的檔案型別,所以在web上使用的只有相對較小的一組型別。
  在web環境最常用的視訊檔案的格式,是以下這些這些檔案型別:

audio/wave
audio/wav
audio/x-wav
audio/x-pn-wav
音訊流媒體檔案。一般支援PCM音訊編碼 (WAVE codec "1") ,其他解碼器有限支援(如果有的話)。
audio/webm WebM 音訊檔案格式。Vorbis 和 Opus 是其最常用的解碼器。
video/webm 採用WebM視訊檔案格式的音視訊檔案。VP8 和 VP9是其最常用的視訊解碼器。Vorbis 和 Opus 是其最常用的音訊解碼器。

multipart/form-data
  可用於HTML表單從瀏覽器傳送資訊給伺服器。作為多部分文件格式,它由邊界線(一個由‘–’開始的字串)劃分出的不同部分組成。每一部分有自己的實體,以及自己的HTTP請求頭,Content-Disposition和Content-Type用於檔案上傳領域,最常用的(Content-Length因為邊界線作為分隔符而被忽略)。