1. 程式人生 > 其它 >7.14ContentType常見型別以及提交方式

7.14ContentType常見型別以及提交方式

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!!!