POST請求的四種content-Type

HTTP協議約定POST 提交的數據必須放在消息主體(entity-body)中,但協議並沒有規定數據必須使用什麼編碼方式(不是指字符編碼),由開發者自行決定。服務端通常是根據請求頭(headers)中的 Content-Type 字段來獲知請求中的消息主體是用何種方式編碼,再對主體進行解析。因此POST 提交數據方案,包含了 Content-Type 和消息主體編碼方式兩部分。主要有四種方式:application/x-www-form-urlencoded、multipart/form-data、raw。
(1)application/x-www-form-urlencoded
最常見的 POST 提交數據的方式了。瀏覽器的原生 <form> 表單,如果不設置 enctype 屬性,那麼最終就會以 application/x-www-form-urlencoded 方式提交數據。
此方式的編碼方式:首先,Content-Type 被指定爲 application/x-www-form-urlencoded;其次,提交的數據按照 key1=val1&key2=val2 的方式進行編碼,key 和 val 都進行了 URL 轉碼。
(2)multipart/form-data
使用表單上傳文件時,必須讓 <form> 表單的 enctype 等於 multipart/form-data。 Content-Type 裏指明瞭數據是以 multipart/form-data 來編碼,上面提到的這兩種 POST 數據的方式,都是瀏覽器原生支持的,而且現階段標準中原生 <form> 表單也只支持這兩種方式(通過 <form> 元素的 enctype 屬性指定,默認爲 application/x-www-form-urlencoded。其實 enctype 還支持 text/plain,不過用得非常少)。
(3)raw方式
raw的編碼方式主要application/json、text/xml等

image.png

 

  • application/json
    使用application/json 這個 Content-Type 作爲響應頭,用來告訴服務端消息主體是序列化後的 JSON 字符串。這種方案,可以方便的提交複雜的結構化數據,特別適合 RESTful 的接口。
  • text/xml
    使用 text/xml 這個 Content-Type 作爲響應頭。

     

    image.png

     

    image.png



作者:嘻洋洋
鏈接:https://www.jianshu.com/p/79c6a2b7a7b3
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章