當瀏覽器發起http請求時,有一個關於媒體格式的請求頭字段,瀏覽器會根據請求連接的內容幫咱們自動加上,那就是Accept字段,它的做用告訴WEB服務器本身接受的MIME類型,屬於請求頭,而服務器接收到該信息後,使用Content-Type 應答頭通知客戶端它選擇的MIME類型,屬於實體頭,服務端不返回Content-Type字段時瀏覽器會按Accept字段裏的屬性順序對返回的數據進行解析。Content-Type也能夠用在請求頭信息中,用來指定報文主體的類型。javascript
注:MIME的全名叫多用途互聯網郵件擴展(Multipurpose Internet Mail
Extensions),MIME的常見形式是一個主類型加一個子類型,用斜線分隔。好比text/html、application/javascript、image/png等,MIME和操做系統的文件拓展名有共同的用途,就是用來標註信息的格式,但應用場景徹底不一樣,一個是操做系統中標註文件的,一個是郵件和HTTP協議中用來標註網絡數據的。
常見的MIME類型:
超文本標記語言文本 .html => text/html
普通文本 .txt => text/plain
GIF圖形 .gif =>image/gif
JPEG圖形 .jpeg,.jpg => image/jpeg
au聲音文件 .au => audio/basic
MPEG文件 .mpg,.mpeg => video/mpeg
AVI文件 .avi => video/x-msvideo
GZIP文件 .gz => application/x-gzip
語法:<MIME_type> / <MIME_subtype>; parametercss
accept示例:
Accept: text/html, application/xhtml+xml, application/xml;q=0.9, / ;q=0.8
注:多個屬性用逗號隔開,默認從左往右匹配,q是權重因子,範圍 0 =< q <= 1,q 值越大,請求越傾向於得到其 「;」 以前的類型表示的內容,若沒有指定 q 值,則默認爲1,若被賦值爲0,則用於提醒服務器哪些是瀏覽器不接受的內容類型html
content-type示例(請求頭):
1、Content-Type: application/x-www-form-urlencoded
通常是post請求才須要在請求頭信息中加上content-type,顯示此HTTP請求提交的內容類型,在最先的post請求中,表單數據向服務器提交時所採用的編碼類型,默認的缺省值就是「application/x-www-form-urlencoded」,參數都是經過鍵值對方式傳遞。該方式對於文件上傳有不少不便前端
body的內容以下: Form Data:number=1&goodsId=1405140&skuId=1405140-68a3e5516d7a7dc21fbe0e7ee13bfc1c&innerSource=DETAIL
2、Content-Type:multipart/form-data
在1995年的時候,content-type擴充了multipart/form-data用以支持向服務器發送二進制數據,此種方式多用於二進制文件上傳,表單數據都保存在http的主體部分(好比post的body),不少狀況下都會有批量上傳,因此各個表單項之間用boundary的值做爲分割標誌。java
3、Content-Type: application/json
如今愈來愈多的應用使用application/json,用來告訴服務端消息主體是序列化的json字符串。web
body的內容以下: {"comboId":" ","goodsList":[{"goodsId":1372308,"skuId":"1372308-228f0bba1bd1b7241353429cebd7c88b","isHuanGou":0,"selected":1,"count":2,"cartGoodsType":0,"activitySchemeId":111873,"goodsActivityGiftListTemp":[]}]}
在Content-Type屬性當中還能夠指定提交內容的charset字符編碼。通常不進行設置,它只是告訴web服務器post提交的數據採用的何種字符編碼,通常在開發過程,是由前端工程與後端工程師會提早商量好使用什麼字符編碼格式來post提交的。因此這裏設置的charset沒有多大做用json
content-type示例(響應頭):後端
Content-Type對照表:http://tool.oschina.net/commons/
HTTP 中 Response 的 Content-Type 標明瞭 客戶端(每每是指瀏覽器)該如何解析此次請求, 通常服務器會根據請求文件的擴展名自動填上匹配的 Content-Type 值,但這個值只是一個指導做用, 意思就是說若是你給一個 <img> 的 src 指向一個 Content-Type= text/css 的錯誤值, 會發現圖片同樣能夠正確的被顯示,只要圖片正文對就行。如今瀏覽器能夠解釋的文件類型不少,除了經常使用的 HTML , 還有 pdf , word , 多媒體數據 等等.因此Content-Type 在response中仍是很是重要的. 不然瀏覽器可能會不知道該怎麼解釋請求的內容。瀏覽器
最後附上accept和content-type的相關字段:服務器
<完>