http抓包—Content-Type講解


1、Content-Type的定義

Content-Type(MediaType),即是Internet Media Type,互聯網媒體類型,也叫做MIME類型。在互聯網中有成百上千中不同的數據類型,HTTP在傳輸數據對象時會為他們打上稱為MIME的數據格式標簽,用於區分數據類型。

在HTTP協議消息頭中,使用Content-Type來表示請求和響應中的媒體類型信息。它用來告訴服務端如何處理請求的數據,以及告訴客戶端(一般是瀏覽器)如何解析響應的數據,比如顯示圖片,解析並展示html等等。

 

http協議是建立在tcp/ip協議之上的應用層協議,主要包括三個部分,狀態行,頭部信息,消息主體。對應一個http請求就是:請求行,請求頭,請求體。協議規定post提交的數據,必須包含在消息主體中entity-body中,但是協議並沒有規定數據使用什么編碼方式。開發者可以自己決定消息主體的格式。數據發送出去后,需要接收的服務端解析成功,一般服務端會根據content-type字段來獲取參數是怎么編碼的,然后對應去解碼。

 

 

2、Content-Type的格式:

Content-Type:type/subtype ;parameter

type:主類型,任意的字符串,如text,如果是*號代表所有;
subtype:子類型,任意的字符串,如html,如果是*號代表所有,用“/”與主類型隔開;
parameter:可選參數,如charset,boundary等。
例如:
Content-Type: text/html;
Content-Type: application/json;charset:utf-8;

Content-Type的種類繁多,具體可參考http://tool.oschina.net/commons

 

3、下面幾種類型是很常用,需要記憶的:

application/x-www-form-urlencoded

這種類型用於當HTTP將請求參數用key1=val1&key2=val2的方式組織,key 和 val 都進行了 URL 轉碼,放到body中(如put方法,多用於表單的提交)。注意如果是中文或者特殊字符,會自動進行URL的轉碼。

  • 如請求參數:

 

  •  生成的HTTP請求報文:可以看見中文是亂碼的,如果沒有指定UTF-8輸出,應該會進行轉義。

 

 

application/json

JSON 是一種輕量級的數據格式,以“key-value”對的方式組織的數據。這個使用這個類型,需要參數本身就是json格式的數據,參數會被直接放到請求實體里,不進行任何處理。服務端/客戶端會按json格式解析數據(約定好的情況下)

get請求下會將key-value解析出來,放到URL的參數里面。JSON 格式支持比鍵值對復雜得多的結構化數據,這一點也很有用。

  • 請求消息

 

  •  生成的HTTP 請求報文

 


免責聲明!

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



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