7.14ContentType常見型別以及提交方式
常見的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資料格式--->訊息主體是序列化後的 JSON 字串,
-
application/pdf:pdf格式
-
application/msword:Word文件格式
-
application/octet-stream:二進位制流資料(檔案下載)
-
application/x-www-form-urlencoded:
-
瀏覽器的原生form表單
-
提交的資料按照 key1=val1&key2=val2 的方式進行編碼,key和val都進行了URL轉碼
-
-
multipart/form-data:常見的 POST 資料提交的方式。我們使用表單上傳檔案時,必須讓 form 的 enctype 等於這個值。
-
首先生成了一個 boundary 用於分割不同的欄位,為了避免與正文內容重複,boundary 很長很複雜。
-
然後 Content-Type 裡指明瞭資料是以 multipart/form-data 來編碼,本次請求的 boundary 是什麼內容。
-
訊息主體裡按照欄位個數又分為多個結構類似的部分,每部分都是以 --boundary 開始,緊接著是內容描述資訊,然後是回車,最後是欄位具體內容(文字或二進位制)。
-
如果傳輸的是檔案,還要包含檔名和檔案型別資訊。訊息主體最後以 --boundary-- 標示結束。
-
示例:
POST /foo HTTP/1.1
Content-Length: 68137
Content-Type: multipart/form-data; boundary=---------------------------974767299852498929531610575
---------------------------974767299852498929531610575
Content-Disposition: form-data; name="description"
some text
---------------------------974767299852498929531610575
Content-Disposition: form-data; name="myFile"; filename="foo.txt"
Content-Type: text/plain
(content of the uploaded file foo.txt)
---------------------------974767299852498929531610575--
每一個表單的格式都是一致的但是分隔符和引數有所不同。具體的可以在介面的Header最下方看到原始碼
It's a lonely road!!!