MIME 類型


關於讀音

為了防止大家出去丟人,我先示范一下,MIME應該獨坐[maim],聽起來就好像“男人”的英語法人一樣。

瀏覽器和MIME的關系

瀏覽器依靠MIME類型解釋網頁。

每當瀏覽器請求一個web頁面時,web服務器會在發送實際內容之前,先發送一些頭信息(Header)。

Content_Type就是所謂的MIME類型。這個類型是web服務器返回的,它標識了這個頁面內容類型,表示這是html文本,當實際內容從服務器返回來之后,瀏覽器就會根據這個MIME類型調用相應的模塊進行處理。

每個MIME類型由兩部分組成,前面是數據的大類別,例如聲音audio、圖象image等,后面定義具體的種類。下面是常用文件后綴和MIME類型對應關系

常見的MIME類型
超文本標記語言文本 .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

 

不同的文件類型的MIME類型不一樣,如css文件和js文件的MIME類型分別為text/css和application/x-javascript。瀏覽器就是根據這些MIME類型來調用自身不同的模塊來處理不同的文件的,比如負責css解釋的模塊將css樣式應用到html上,負責處理圖片的模塊將圖片顯示到頁面上。這樣我們才看到了一個個精彩的網頁。

由於MIME類型與文檔的后綴相關,因此服務器使用文檔的后綴來區分不同文件的MIME類型,服務器中必須定義文檔后綴 和MIME類型之間的對應關系

有些類型的MIME文件,打開的時候,即會自動下載該文件,這也是瀏覽器識別MIME類型的結果。

留個問題

有在返回的頭信息中沒有Content-Type屬性的情況,那么瀏覽器會根據文件后綴判斷文件類型嗎?

MIME和ajax請求

請求有發送請求和接收請求兩部分。

發送請求中設置content-type

目的是設置要發送給服務器數據的格式:

 

1.發送json格式數據:
xhr.setRequestHeader("Content-type","application/json; charset=utf-8");1

2.發送表單數據:
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");1

3.發送純文本(默認值):
xhr.setRequestHeader("Content-type", "text/plain; charset=utf-8");1

4.發送html文本:
xhr.setRequestHeader("Content-type", "text/html; charset=utf-8");1

5.編碼可帶可不帶:
// 不帶字符編碼寫法
xhr.setRequestHeader("Content-type", "application/json");12

6.值對大小寫不敏感:
xhr.setRequestHeader("Content-type","Application/JSON; charset=utf-8");

 

響應中的content-type作用,上文中提到是瀏覽器解析返回數據的一句

AJAX overrideMimeType作用

 

我們經常在AJAX代碼中發現如下代碼:
   if (http_request.overrideMimeType) {
    http_request.overrideMimeType("text/xml");

}

其作用是:重寫由服務器返回的MIME type,針對某些特定版本的mozillar瀏覽器的BUG進行修正

注意,這個方法必須在send()之前被調用。

具體來說:

如果來自服務器的響應沒有 XML mime-type 頭部,則一些版本的 Mozilla 瀏覽器不能正常運行。

對於這種情況,httpRequest.overrideMimeType('text/xml'); 語句將覆蓋發送給服務器的頭部,強制 將text/xml 作為 mime-type。

 

附上常見的content-type類型

常見的媒體格式類型如下:

  •     text/html : HTML格式
  •     text/plain :純文本格式      
  •     text/xml :  XML格式
  •     image/gif :gif圖片格式    
  •     image/jpeg :jpg圖片格式 
  •     image/png:png圖片格式

   以application開頭的媒體格式類型:

  •    application/xhtml+xml :XHTML格式
  •    application/xml     : XML數據格式
  •    application/atom+xml  :Atom XML聚合格式    
  •    application/json    : JSON數據格式
  •    application/pdf       :pdf格式  
  •    application/msword  : Word文檔格式
  •    application/octet-stream : 二進制流數據(如常見的文件下載)
  •    application/x-www-form-urlencoded : <form encType=””>中默認的encType,form表單數據被編碼為         key/value格式發送到服務器(表單默認的提交數據的格式)

   另外一種常見的媒體格式是上傳文件之時使用的:

  •     multipart/form-data : 需要在表單中進行文件上傳時,就需要使用該格式

     以上就是我們在日常的開發中,經常會用到的若干content-type的內容格式。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM