Content-Type用于指定內(nèi)容類型隘梨,一般是指網(wǎng)頁中存在的Content-Type,Content-Type屬性指定請求和響應(yīng)的HTTP內(nèi)容類型嘴瓤。如果未指定 ContentType扫外,默認(rèn)為text/html。
下面是幾個常見的Content-Type:
1.text/html
2.text/plain
3.text/css
4.text/javascript
5.application/x-www-form-urlencoded
6.multipart/form-data
7.application/json
8.application/xml
…
前面幾個都很好理解廓脆,都是html畏浆,css,javascript的文件類型狞贱,后面四個是POST的發(fā)包方式。
application/x-www-form-urlencoded是常用的表單發(fā)包方式蜀涨,普通的表單提交瞎嬉,或者js發(fā)包蝎毡,默認(rèn)都是通過這種方式,
比如一個簡單地表單:
<form enctype="application/x-www-form-urlencoded" action="http://homeway.me/post.php" method="POST">
<input type="text" name="name" value="homeway">
<input type="text" name="key" value="nokey">
<input type="submit" value="submit">
</form>
application/json
通過json形式將數(shù)據(jù)發(fā)送給服務(wù)器氧枣,一開始沐兵,我嘗試通過curl,給服務(wù)器發(fā)送application/json格式包便监,
multipart/form-data用在發(fā)送文件的POST包扎谎。
這里假設(shè)我用python的request發(fā)送一個文件給服務(wù)器:
data = {
"key1": "123",
"key2": "456",
}
files = {'file': open('index.py', 'rb')}
res = requests.post(url="http://localhost/upload", method="POST", data=data, files=files)
print res
通過工具,可以看到我發(fā)送的數(shù)據(jù)內(nèi)容如下:
POST http://www.homeway.me HTTP/1.1
Content-Type:multipart/form-data; boundary=------WebKitFormBoundaryOGkWPJsSaJCPWjZP
------WebKitFormBoundaryOGkWPJsSaJCPWjZP
Content-Disposition: form-data; name="key2"
456
------WebKitFormBoundaryOGkWPJsSaJCPWjZP
Content-Disposition: form-data; name="key1"
123
------WebKitFormBoundaryOGkWPJsSaJCPWjZP
Content-Disposition: form-data; name="file"; filename="index.py"
這里Content-Type告訴我們烧董,發(fā)包是以multipart/form-data格式來傳輸毁靶,另外,還有boundary用于分割數(shù)據(jù)逊移。
當(dāng)文件太長预吆,HTTP無法在一個包之內(nèi)發(fā)送完畢,就需要分割數(shù)據(jù)胳泉,分割成一個一個chunk發(fā)送給服務(wù)端拐叉,
那么--用于區(qū)分?jǐn)?shù)據(jù)快,而后面的數(shù)據(jù)633e61ebf351484f9124d63ce76d8469就是標(biāo)示區(qū)分包作用扇商。
text/xml
微信用的是這種數(shù)據(jù)格式發(fā)送請求的凤瘦。
POST http://www.homeway.me HTTP/1.1
Content-Type: text/xml
<?xml version="1.0"?>
<resource>
<id>123</id>
<params>
<name>
<value>homeway</value>
</name>
<age>
<value>22</value>
</age>
</params>
</resource>