網際網路媒體型式
互聯網媒體類型(Internet media type,也稱為MIME類型(MIME type)或內容類型(content type))是給互聯網上傳輸的內容賦予的分類類型。一份內容的互聯網媒體類型是由其檔案格式與內容決定的。互聯網媒體類型與文件拓展名相對應,因此計算機系統常常通過拓展名來確定一個文件的媒體類型並決定與其相關聯的軟件。互聯網媒體類型的分類標準由互聯網號碼分配局(IANA)發布。1996年十一月,媒體類型在RFC 2045中被最初定義,當時僅被使用在SMTP協議的電子郵件中。現在其他的協議(比如HTTP或者SIP)也都常使用MIME類型。 一個MIME類型至少包括兩個部分:一個類型(type)和一個子類型(subtype)。此外,它還可能包括一個或多個可選參數(optional parameter)。比如,HTML文件的互聯網媒體類型可能是
text/html; charset = UTF-8
在這個例子中,文件類型為text
,子類型為html
,而charset
是一個可選參數,其值為UTF-8
。
命名格式
[編輯]一個MIME類型包括一個類型(type),一個子類型(subtype)。此外可以加上一個或多個可選參數(optional parameter)。其格式為
类型名 / 子类型名 [ ; 可选参数 ]
目前已被註冊的類型名有application
、audio
、example
、image
、message
、model
、multipart
、text
,以及video
。chemical
是一個非官方的常用類型名。[1]此外,非標準的類型名一般會加上x-
前綴,但這種做法已經過時。[2]
子類型名通常是一個媒體形式被冠以的名稱,不過子類型名中也會有其它信息,包括廠商信息、產品信息、分類信息(子類型會被歸進一個樹狀的分類結構中)、後綴等等。樹結構分類信息以被.
相互連接的字符串表示。每一個由.
分隔開的部分又可以加上與其以-
相連接的附加信息。此外,子類型名中也會有放在最後,與前面的內容以+
相連接的後綴。因此,一個媒體類型的格式可以被更加細地表示為:
类型名 / [ 树结构分类信息(中间可能有一个或多个“.”) ] 子类型名(中间可能有一个或多个“-”) [ + 后缀 ] [ ; 可选参数 ]
這些信息遵循註冊樹(見下)的規定。
註冊樹(Registration Tree)
[編輯]所有的媒體類型都是通過IANA的流程註冊的。為了保證註冊流程的靈活性與效率,子類型被歸進了一個樹結構的分類中。樹結構信息被放在了子類型名的最前面,以.
與其它部分分隔。現在,存在以下幾種樹:標準樹(Standards Tree)、廠商樹(Vendor Tree)、個人樹(Personal or Vanity Tree)、以及非標準的x.
為前綴的樹。這些樹最早於1996年十一月隨着RFC 2048被定義出來。IETF標準行動(Standard Action)可能會創造新的註冊樹以滿足著名的持續性組織(比如科學社區)的註冊和管理需求。
標準樹
[編輯]標準樹中的子類型名不需要樹結構信息(也就是不需要帶.
的前綴)。[3]
类型名 / 子类型名 [ + 后缀 ] [ ; 可选参数 ]
要註冊標準樹中的子類型,其必須遵從IESG直接批准的IETF規範,或者被由IANA認證的標準相關組織註冊。
廠商樹
[編輯]廠商樹中包含與公開使用的產品相聯繫的媒體類型。其使用vnd.
前綴。在前綴之後必須是著名廠商的名稱或是IANA認證廠商的名稱加上表示文件類型和/或內容的文字。
类型名 / vnd.子类型名 [ + 后缀 ] [ ; 可选参数 ]
比如與Debian項目組織提供的dpkg相關聯的.deb文件的MIME類型是:
application/vnd.debian.binary-package
其中,debian
是廠商(生產方)名稱,而binary-package
是對文件類型和內容的描述。
「廠商」與「生產方」在這個語境下是相同的概念。工業財團和非盈利組織也可以註冊廠商樹中的媒體類型。任何想要傳播與某種軟件緊密聯繫的文件格式的人都可以註冊廠商樹中的子類型,但是這個子類型是屬於該軟件或是文件格式的生產方的。這種情況下,廠商可以選擇在任何時間聲明自己擁有第三方進行的註冊的所有權。[3]
個人樹
[編輯]個人樹中包含試驗性或者不會以商業形式公開的子類型。個人樹中的子類型名的前綴是prs.
类型名 / prs.子类型名 [ + 后缀 ] [ ; 可选参数 ]
個人樹中的子類型屬註冊者所有,但也可以轉讓。[3]
未註冊的x.樹
[編輯]以x.
為第一前綴的子類型名僅能夠在私人的、本地的環境中使用。此類型的子類型不能被註冊。其只能在相互間同意的各方中傳輸使用。儘管有時未被註冊的MIME類型必須被使用,這是不被推薦的。
类型名 / x.子类型名 [ + 后缀 ] [ ; 可选参数 ]
帶有x-
的子類型名原先被歸到這顆樹中,但是這種做法已經不被採用。[2]如果一個帶有x-
前綴的子類型名被廣泛使用和接受,其可能最終會被註冊並且歸進其它樹中[3],儘管x-
本身已經過時。[2]
媒體類型列表
[編輯]IANA維護着一個媒體類型和字符編碼的記錄列表。他們的列表通過互聯網向公眾開放。
Type application
[編輯]分別對於不同用途的檔案:
application/atom+xml
:Atom feedsapplication/ecmascript
:ECMAScript/JavaScript;[4](相當於application/javascript
但是嚴格的處理規則)application/EDI-X12
:EDI ANSI ASC X12資料[5]application/EDIFACT
:EDI EDIFACT資料[5]application/json
:JSON(JavaScript Object Notation)[6]application/javascript
:ECMAScript/JavaScript[4](相當於application/ecmascript
但是寬鬆的處理規則)它不被IE 8或更早之前的版本所支援。雖然可以改用text/javascript
,但它卻被RFC 4329定義為過時。在HTML5之中,<script>
標籤的type的屬性是可省略的,因為所有的瀏覽器即使在HTML5以前都一直預設使用JavaScript。application/octet-stream
:任意的二進制檔案(通常做為通知瀏覽器下載檔案)[7]一般來說,這種類型標識的文件不應該與特定應用程序關聯。與Apache等軟件包過去的假設相反,這種類型不應該應用於未知文件。在這種情況下,服務器或應用程序不應指示內容類型,因為這可能是不正確的,而應該省略類型,以便讓接收者猜測類型。[8]application/ogg
:Ogg視頻文件格式[9]application/pdf
:PDF[10]application/postscript
:PostScript[7]application/rdf+xml
:Resource Description Framework[11]application/rss+xml
:RSS feedsapplication/soap+xml
:SOAP[12]application/font-woff
:Web Open Font Format(推薦使用;使用application/x-font-woff
直到它變為官方標準)application/xhtml+xml
:XHTML[13]application/xml
:XML檔案[14]application/xml-dtd
:DTD檔案[14]application/xop+xml
:XML-binary Optimized Packaging[15]application/zip
:ZIP壓縮檔[16]application/gzip
:Gzip[17]
Type audio
[編輯]數位音訊檔案:
audio/mp4
:MP4音訊檔案[18]audio/mpeg
:MP3或其他MPEG音訊檔案[19]audio/ogg
:Ogg音訊檔案[9]audio/vorbis
:Vorbis音訊檔案[20]audio/vnd.rn-realaudio
:RealAudio音訊檔案[21]audio/vnd.wave
:WAV音訊檔案[22]audio/webm
:WebM音訊檔案audio/flac
:FLAC音訊檔案
Type image
[編輯]圖檔:
image/gif
:GIF圖檔[23]image/jpeg
:JPEG圖檔[23]image/png
: PNG圖檔[24]image/webp
: WebP圖檔image/svg+xml
:SVG向量圖檔[25]image/tiff
:TIFF圖檔[26]image/icon
:ICO圖片文件
Type message
[編輯]Type model
[編輯]三維計算機圖形檔案:
model/example
[27]model/iges
:IGS 文件,IGES 文件[28]model/mesh
:MSH 文件,MESH 文件[28]model/vrml
:WRL 文件,VRML 文件[28]model/x3d+binary
:X3D ISO 標準,用於表示三維計算機圖形、X3DB 二進制文件model/x3d+vrml
:X3D ISO 標準,用於表示三維計算機圖形、X3DB VRML文件model/x3d+xml
:X3D ISO 標準,用於表示三維計算機圖形、X3DB XML 文件
Type multipart
[編輯]Type text
[編輯]text/css
:CSS檔案[29]text/csv
:CSV檔案[30]text/html
:HTML檔案[31]text/javascript
(過時): JavaScript; 在 RFC 4329 中定義並捨棄,以減少使用,推薦使用application/javascript
。然而,相比於application/javascript
,在 HTML 4 和 5 中,可以使用text/javascript
,且有跨瀏覽器的支持。因為在使用<script>
時,對於其 "type" 屬性 ,所有瀏覽器都會使用正確的預設值(儘管 HTML 4 的規格中明確要求),所以 HTML 5 中定義為選擇性的,且沒必要。text/plain
:純文字內容[32]text/vcard
:vCard(電子名片)[33]text/xml
:XML[14]
Type video
[編輯]video/mpeg
:MPEG-1視頻檔案[34]video/mp4
:MP4視頻檔案[35]video/ogg
:Ogg視頻檔案[9]video/quicktime
:QuickTime視頻檔案[36]video/webm
:WebM視頻檔案(基於Matroska基礎)video/x-matroska
:Matroska(多媒體封裝格式)video/x-ms-wmv
:Windows Media Video視頻檔案[37]video/x-flv
:Flash Video(FLV檔)
參考文獻
[編輯]- ^ Leidert, L.; Willighagen, E. The chemical-mime-data project. 2007 [2016-04-28]. (原始內容存檔於2016-10-08).
- ^ 2.0 2.1 2.2 Saint-Andre, P.; Crocker, D.; Nottingham, M. Deprecating the "X-" Prefix and Similar Constructs in Application Protocols. Internet Engineering Task Force (IETF). June 2012. 2070-1721 ISSN ISSN: 2070-1721 請檢查
|issn=
值 (幫助). - ^ 3.0 3.1 3.2 3.3 Freed, N.; Klensin, J.; Hansen, T. Media Type Specifications and Registration Procedures. Internet Engineering Task Force (IETF). [2015-07-15]. ISSN 2070-1721. (原始內容存檔於2015-07-04) (英語).
- ^ 4.0 4.1 RFC 4329 - Scripting Media Types
- ^ 5.0 5.1 RFC 1767 - MIME Encapsulation of EDI Objects
- ^ RFC 4627 -The application/json Media Type for JavaScript Object Notation(JSON)
- ^ 7.0 7.1 RFC 2046 - Multipurpose Internet Mail Extensions (MIME) Part Two: Media types
- ^ W3C. RFC 2616: 7. Entity. Hypertext Transfer Protocol -- HTTP/1.1. The Internet Society. June 1999 [28 May 2012]. (原始內容存檔於2020-09-23).
- ^ 9.0 9.1 9.2 RFC 5334 - Ogg Media Types
- ^ RFC 3778 - The application/pdf Media Type
- ^ RFC 3870 - application/rdf+xml Media Type Registration
- ^ RFC 3902 - The "application/soap+xml" media type
- ^ RFC 3236 - The 'application/xhtml+xml' Media Type
- ^ 14.0 14.1 14.2 RFC 3023 - XML Media Types
- ^ XML-binary Optimized Packaging. [2013-08-11]. (原始內容存檔於2020-11-14).
- ^ MIME SUBTYPE NAME: zip. [2013-08-11]. (原始內容存檔於2012-05-23).
- ^ RFC 6713 - The 'application/zlib' and 'application/gzip' Media Types
- ^ RFC 4337 -MIME Type Registration for MPEG-4
- ^ RFC 3003 - The audio/mpeg Media Type
- ^ RFC 5215 - RTP Payload Format for Vorbis Encoded Audio
- ^ Supported Media Formats. RealPlayer Help. RealNetworks. 2010 [28 May 2012]. (原始內容存檔於2012年6月7日).
- ^ RFC 2361 - WAVE and AVI Codec Registries
- ^ 23.0 23.1 RFC 2045, RFC 2046 - Multipurpose Internet Mail Extensions (MIME), parts 1 and 2
- ^ RFC 2083 - PNG (Portable Network Graphics) Specification - Version 1.0
- ^ SVG Tiny 1.2 Specification (頁面存檔備份,存於網際網路檔案館) Appendix M
- ^ RFC 3302 - Tag Image File Format (TIFF) - image/tiff MIME Sub-type Registration
- ^ RFC 4735 - Example Media Types for Use in Documentation
- ^ 28.0 28.1 28.2 RFC 2077 - The Model Primary Content Type for Multipurpose Internet Mail Extensions
- ^ RFC 2318 - The text/css Media Type
- ^ RFC 4180 - Common Format and MIME Type for Comma-Separated Values (CSV) Files
- ^ RFC 2854 - The 'text/html' Media Type
- ^ RFC 2046與RFC 3676
- ^ RFC 6350 - vCard Format Specification
- ^ RFC 2045與RFC 2046
- ^ RFC 4337 - MIME Type Registration for MPEG-4
- ^ Quicktime. [2008-01-12]. (原始內容存檔於2020-08-09).
- ^ Microsoft KB 288102. [2013-08-10]. (原始內容存檔於2013-11-26).