http header Content-Type之常用三種


Content-Type 用於指示資源的MIME類型

  • 在響應頭中,告訴客戶端實際返回內容的類型
  • 在請求頭中,告訴服務器實際發送的數據類型

句法:

Content-Type: text/html; charset=utf-8
Content-Type: multipart/form-data; boundary=something

指令

media-type
資源或數據的  MIME type 。
charset
字符編碼標准。
boundary
對於多部分實體,boundary 是必需的,其包括來自一組字符的1到70個字符,已知通過電子郵件網關是非常健壯的,而不是以空白結尾。它用於封裝消息的多個部分的邊界。

這里主要介紹三種常見的media-type: application/x-www-form-urlencoded, multipart/form-data, application/json

我們使用chrome控制台可以看到,有些請求參數在Form Data中,一個在Request Payload中,這是因為Content-Type設置不同。

 

  1. application/x-www-form-urlencoded  請求參數在Form Data中,鍵值對,用間隔分開,如: name1=value1&name2=value2
  2. multipart/form-data  請求參數在Request Payload 中, 可以上傳文件,也可以上傳鍵值對,最后會轉化為一條由boundary字符串分隔的信息體。boundary是一個不可能在數據中出現的字符串。 如:------WebKitFormBoundaryyb1zYhTI38xpQxBK就是boundary
POST http://www.example.com HTTP/1.1
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryyb1zYhTI38xpQxBK

------WebKitFormBoundaryyb1zYhTI38xpQxBK
Content-Disposition: form-data; name="city_id"

1

------WebKitFormBoundaryyb1zYhTI38xpQxBK
Content-Disposition: form-data; name="company_id"

2
------WebKitFormBoundaryyb1zYhTI38xpQxBK
Content-Disposition: form-data; name="file"; filename="chrome.png"
Content-Type: image/png

PNG ... content of chrome.png ...
------WebKitFormBoundaryyb1zYhTI38xpQxBK--

     3. application/json 請求參數在Request Payload中, 參數形式:{key:value}

 

 

以上三種類型,在服務端獲取參數的方法不同, 因此如果設置錯誤,可能會造成后端接受不到數據的情況。

 

實際開發中選擇哪種Content-Type呢?

二進制文件選擇:multipart/form-data;

大段的json字符串,適合使用payload,因此可以選擇:application/json

application/x-www-form-urlencoded:最常見,原生form變動,如果不設置enctype屬性,那么默認該類型提交數據。


免責聲明!

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



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