1. 程式人生 > >什麽是 MIME TYPE?(轉)

什麽是 MIME TYPE?(轉)

clas RoCE content ons 標準類型 data excel 不同的應用 resp


什麽是 MIME TYPE?

一、

首先,我們要了解瀏覽器是如何處理內容的。在瀏覽器中顯示的內容有 HTML、有 XML、有 GIF、還有 Flash ……那麽,瀏覽器是如何區分它們,決定什麽內容用什麽形式來顯示呢?答案是 MIME Type,也就是該資源的媒體類型。

媒體類型通常是通過 HTTP 協議,由 Web 服務器告知瀏覽器的,更準確地說,是通過 Content-Type 來表示的,例如:

Content-Type: text/HTML


表示內容是 text/HTML 類型,也就是超文本文件。為什麽是“text/HTML”而不是“HTML/text”或者別的什麽?MIME Type 不是個人指定的,是經過 ietf 組織協商,以 RFC 的形式作為建議的標準發布在網上的,大多數的 Web 服務器和用戶代理都會支持這個規範 (順便說一句,Email 附件的類型也是通過 MIME Type 指定的)。

通常只有一些在互聯網上獲得廣泛應用的格式才會獲得一個 MIME Type,如果是某個客戶端自己定義的格式,一般只能以 application/x- 開頭。

XHTML 正是一個獲得廣泛應用的格式,因此,在 RFC 3236 中,說明了 XHTML 格式文件的 MIME Type 應該是 application/xHTML+XML。

當然,處理本地的文件,在沒有人告訴瀏覽器某個文件的 MIME Type 的情況下,瀏覽器也會做一些默認的處理,這可能和你在操作系統中給文件配置的 MIME Type 有關。比如在 Windows 下,打開註冊表的“HKEY_LOCAL_MACHINESOFTWAREClassesMIMEDatabaseContent Type”主鍵,你可以看到所有 MIME Type 的配置信息。

二、

在把輸出結果傳送到瀏覽器上的時候,瀏覽器必須啟動適當的應用程序來處理這個輸出文檔。這可以通過多種類型MIME(多功能網際郵件擴充協議)來完成。在HTTP中,MIME類型被定義在Content-Type header中。

例如,架設你要傳送一個Microsoft Excel文件到客戶端。那麽這時的MIME類型就是“application/vnd.ms-excel”。在大多數實際情況中,這個文件然後將傳送給Execl來處理(假設我們設定Execl為處理特殊MIME類型的應用程序)。在ASP中,設定MIME類型的方法是通過Response對象的ContentType屬性。


多媒體文件格式MIME

最早的HTTP協議中,並沒有附加的數據類型信息,所有傳送的數據都被客戶程序解釋為超文本標記語言HTML 文檔,而為了支持多媒體數據類型,HTTP協議中就使用了附加在文檔之前的MIME數據類型信息來標識數據類型。

MIME意為多目Internet郵件擴展,它設計的最初目的是為了在發送電子郵件時附加多媒體數據,讓郵件客戶程序能根據其類型進行處理。然而當它被HTTP協議支持之後,它的意義就更為顯著了。它使得HTTP傳輸的不僅是普通的文本,而變得豐富多彩。

每個MIME類型由兩部分組成,前面是數據的大類別,例如聲音audio、圖象image等,後面定義具體的種類。

常見的MIME類型

超文本標記語言文本 .html,.html text/html
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
GIF圖形 .gif image/gif
JPEG圖形 .ipeg,.jpg image/jpeg
au聲音文件 .au audio/basic
MIDI音樂文件 mid,.midi audio/midi,audio/x-midi
RealAudio音樂文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
TAR文件 .tar application/x-tar

Internet中有一個專門組織IANA來確認標準的MIME類型,但Internet發展的太快,很多應用程序等不及IANA來確認他們使用的MIME類型為標準類型。因此他們使用在類別中以x-開頭的方法標識這個類別還沒有成為標準,例如:x-gzip,x-tar等。事實上這些類型運用的很廣泛,已經成為了事實標準。只要客戶機和服務器共同承認這個MIME類型,即使它是不標準的類型也沒有關系,客戶程序就能根據MIME類型,采用具體的處理手段來處理數據。而Web服務器和瀏覽器(包括操作系統)中,缺省都設置了標準的和常見的MIME類型,只有對於不常見的 MIME類型,才需要同時設置服務器和客戶瀏覽器,以進行識別。

由於MIME類型與文檔的後綴相關,因此服務器使用文檔的後綴來區分不同文件的MIME類型,服務器中必須定義文檔後綴和MIME類型之間的對應關系。而客戶程序從服務器上接收數據的時候,它只是從服務器接受數據流,並不了解文檔的名字,因此服務器必須使用附加信息來告訴客戶程序數據的MIME類型。服務器在發送真正的數據之前,就要先發送標誌數據的MIME類型的信息,這個信息使用Content-type關鍵字進行定義,例如對於HTML文檔,服務器將首先發送以下兩行MIME標識信息,這個標識並不是真正的數據文件的一部分。

Content-type: text/html

註意,第二行為一個空行,這是必須的,使用這個空行的目的是將MIME信息與真正的數據內容分隔開。

MIME (Multipurpose Internet Mail Extensions) 是描述消息內容類型的因特網標準。
MIME 消息能包含文本、圖像、音頻、視頻以及其他應用程序專用的數據。
官方的 MIME 信息是由 Internet Engineering Task Force (IETF) 在下面的文檔中提供的:
RFC-822 Standard for ARPA Internet text messages

RFC-2045 MIME Part 1: Format of Internet Message Bodies

RFC-2046 MIME Part 2: Media Types

RFC-2047 MIME Part 3: Header Extensions for Non-ASCII Text

RFC-2048 MIME Part 4: Registration Procedures

RFC-2049 MIME Part 5: Conformance Criteria and Examples

不同的應用程序支持不同的 MIME 類型。

什麽是 MIME TYPE?(轉)