--- tags: Other --- # MIME Type, Content-Type **網際網路媒體型式 Internet media type**,也稱為 MIME type 或 content type,全名為 Multipurpose Internet Mail Extensions,是給網際網路上傳輸的內容賦予的分類類型。 最初目的是為了在傳送電子郵件時附加多媒體資料,讓郵件客戶程式能根據其型別進行處理。然而當它被 HTTP 協議支援之後,讓 HTTP 能傳輸的內容變得豐富多彩。 **MIME type = `[type/subtype[+ suffix][; optional parameter]`** 以 HTML 為例: ``` text/html; charset = UTF-8 type/subtype; optional parameter ``` ## 查看 * 可以看 Response Header 內的 Content-Type 觀察和 IANA 認證的[表格](https://www.iana.org/assignments/media-types/media-types.xhtml)。 > 每個 browser 對不同的 Content-Type 有不同的處理。 * ```shell $ file --mime-type [-b] <FILE> ``` ## Type 目前已註冊的 type 有: * application `application/octet-stream`:默認值。 * audio * example * image * message * model * multipart * text `text/plain`:默認值。 `text/css`:CSS 文件必須給定這個 MIME Type,否則會被忽略掉。 `text/html`:HTML5 統一了其他相關的 HTML 的類型。 * video * chemical:非官方的常用類型名。 ## Subtype 通常是一個媒體形式的名稱,也會有其它資訊,包括廠商資訊、產品資訊、分類資訊、字尾等等。 樹結構分類資訊以被 `.` 相互連接的字串表示,而每個部分又可以加上 `-` 附加資訊。 ### Registration Tree #### 標準樹 子類型名不需要樹結構資訊(不需要 `.`)。 #### 廠商樹 **字首為 `vnd.`**,包含與公開使用的產品相聯絡的媒體類型,必須是著名廠商的名稱或是 [IANA](https://zh.wikipedia.org/wiki/%E4%BA%92%E8%81%94%E7%BD%91%E5%8F%B7%E7%A0%81%E5%88%86%E9%85%8D%E5%B1%80) 認證廠商的名稱。 #### 個人樹 **字首為 `prs.`**,包含試驗性或者不會以商業形式公開的子類型。 #### 未註冊的 x. 樹 **字首為 `x.`**,僅能夠在私人的、原生的環境中使用。不能被註冊,但只要客戶機和伺服器共同承認這個 MIME type 即可使用。這種做法已經過時不被採用。 ## 參考資料 * [MIME types (IANA media types) / MDN web docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) * [網際網路媒體型式 / Wiki](https://zh.wikipedia.org/wiki/%E4%BA%92%E8%81%94%E7%BD%91%E5%AA%92%E4%BD%93%E7%B1%BB%E5%9E%8B) * [多用途網際網路郵件擴展 / Wiki](https://zh.wikipedia.org/wiki/%E5%A4%9A%E7%94%A8%E9%80%94%E4%BA%92%E8%81%AF%E7%B6%B2%E9%83%B5%E4%BB%B6%E6%93%B4%E5%B1%95) * [Media Types / IANA](https://www.iana.org/assignments/media-types/media-types.xhtml)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up