用戶可以通過使用MIME以設置服務器傳送多媒體如聲音和動畫信息,這一切可能通過CGI腳本來進行。在下面的文章中,你可以了解到一此關于MIME和關于在網絡上使用MIME的知識。
MIME是一種技術規范,它原來是用于電子郵件的,現在也可以用于瀏覽器上,傳送可以供瀏覽器識別的信息,關于MIME的知識并是十分難懂的,有一些基本的計算機概念就可以理解了,但如果要進一步使用,就必須注意內容。實際上,我們在上網的時候就已經接觸到了MIME,只是瀏覽器和服務器在底層實現了。
MIME有時候被錯誤地理解為多媒體Internet郵件擴展(Multimedia Internet Mail Extensions),這是一個錯誤,但是MIME在網上經常用于多媒體應用程序,所以人們以為這是它是多媒體郵件擴展,而實際上它應該被稱為多用途Internet郵件擴展(Multipurpose Internet Mail Extensions),這一點一定要注意,因為有時候內容里根本沒有非文本成份。
MIME對于郵件系統的擴展是巨大的,因為在MIME出現以前,信件內容如果要包括聲音和動畫,就必須把它變為ASCII碼或把二進制的信息變成可以傳送的編碼標準,而接收方必須經過解碼才可以獲得聲音和圖畫信息。MIME提供了一種可以在郵件中附加多種不同編碼文件的方法。這與原來的郵件是大大不同的。而現在MIME已經成為了HTTP協議標準的一個部分。
MIME是服務器通知客戶機傳送文件是什么類型的主要方法,客戶機瀏覽器也通過MIME告訴服務器它的參數。在網上,如果接收到的文件沒有MIME頭,就默認它為HTML格式。但這樣也不好,因為當MIME的包頭是text/plain時,瀏覽器將直接顯示而不關心它的什么字體,顏色之類的參數,這樣顯示出來的內容可不是很好看呀。
MIME頭是什么樣子要看它是用在電子郵件中還是用在瀏覽器上,兩者內容可能有所不同。對于郵件頭來說,版本號,內容類型聲明,編碼方式,內容描述是必不可少的。這是用于郵件頭中的格式,在下面,我們將重點說到在HTTP中傳送MIME頭,這時MIME頭要簡單一些。
下例是一個郵件的標準MIME頭:
Mime-Version: 1.0 //版本號:1.0
Content-Type: multipart/mixed; boundary="IMA.Boundary.750407228" //內容類型是多種的
--IMA.Boundary.750407228
Content-Type: text/plain; charset=US-ASCII //內容類型:文本,字符是ASCII的
Content-Transfer-Encoding: 7bit //編碼方式:7位
Content-Description: cc:Mail note part
在用于瀏覽器時,用戶不需要知道那么多的信息,所以MIME頭就比較簡單了。在訪問一個網頁時,瀏覽器和服務器之間產生一個會話,作為請求內容的一部分,瀏覽器發送它能夠理解的MIME類型的描述,這就告訴服務器,瀏覽器除了網頁外還可以支持什么,服務器對這個信息一般不作為什么修改。
服務器通過發向客戶機的MIME頭通知客戶瀏覽器內容是什么,我們看看下面這個頭:
Content-type: text/html
在實現的時候,一定要注意MIME頭后要跟一個空行,不然這個頭會被瀏覽器忽略,這個頭會被當作文本顯示出來。當服務器傳送GIF圖象時,頭會如下:
Content-type: image/gif
Content-transfer-encoding: BINARY
通常的MIME內容類型并不起什么作用,瀏覽器可以自己識別內容的類型,但是如果您使用一些另外的類型,這個問題可就大了,如果你使用了text/postscript,那瀏覽器會顯示下載窗口,或就把這個東西顯示出來,那可就不好辦了。下面我們介紹一下標準MIME類型。
Text. 文本,它用于描述不同類型的文本,包括通常的文本,PostScript和HTML,雖然HTML不是一個可能的子類型。
Multipart. 多類型,指出此信息包括多種信息,不止一種類型。
Message. 用于標記不同類型的消息。
Application. 應用類型。
Image. 圖象,用于標明圖形文件。
Audio. 聲音,用于標明聲音文件。
Video. 影象,用于標明動畫文件。
每個MIME類型有不同的子類型,實際上,您不可能單獨使用類型而不使用子類型,只有一個例外,這就是"telnet"類型。IANA提供45種類型/子類型對支持。當然,標準是開放的,允許用戶自定義自己的類型,用戶自定義類型要以“X-”開始以示區別。在添加新的類型時,一定要注意,盡量使用已有的類型達到自己的目的。如果非要添加新的類型,一定要保證服務器一方支持這種類型,也要保證客戶端也能夠通過一些應用程序(如插件)來識別新類型。如果您的網站的訪問者很廣,不要輕易使用新類型,要么使用已有的類型,或者向IANA提出注冊請求。
|