---
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)