HTTP header 字段中 Accept 表示客戶端可支持的數據類型(Content-Type),如text/css, application/json, 這些類型都是以MIME規格定義的數據類型來表示的, 統稱為MIME類型。
MIME 是什麼?
MIME: Multipurpose Internet Mail Extensions, 多用途互聯網郵件擴展。
它是一種描述消息內容類型的因特網標準。最早應用於電子郵件系統,後來也應用到瀏覽器。 這個標準被定義在RFC 2045、RFC 2046、RFC 2047、RFC 2048、RFC 2049等RFC中,用來表示文檔、文件或字節流的性質和格式。(它的定義和標準化- 可參考IETF RFC 6838)。互聯網號碼分配機構(IANA)是負責跟蹤所有官方MIME類型的官方機構,可以在媒體類型頁面中找到最新的完整列表。
MIME類型有什麼作用?
瀏覽器要顯示或處理資源的時候,並不知道其響應的數據是什麼類型的,為了區分這些資源類型,就需要用到 MIME 了。
瀏覽器通常使用MIME類型(而不是文件擴展名)來確定如何處理URL。 因此web服務器會在響應頭中添加MIME類型,從而讓瀏覽器知道數據類型,從而瀏覽器能夠知道應該使用哪種插件或者應用程序去讀取相關數據。 MIME請求類型在請求報文和響應報文中均有體現(Accept字段, Content-Type字段)
MIME通用結構 - type/subtype
MIME的組成結構非常簡單;由類型與子類型兩個字符串中間用'/'分隔而組成。不允許空格存在。type 表示可以被分多個子類的獨立類別。subtype 表示細分後的每個類型。
常見MIME 類型:
- text/plain
- text/html
- image/jpeg
- image/png
- audio/mpeg
- audio/ogg
- audio/*
- video/mp4
- application/*
- application/json
- application/javascript
- application/ecmascript
- application/octet-stream
參考資料
IETF RFC 6838: https://tools.ietf.org/html/rfc6838
MIME媒體類型完整列表: https://www.iana.org/assignments/media-types/media-types.xhtml