1、Content-Type的取值php
在Http請求中,咱們天天都在使用Content-type來指定不一樣格式的請求信息(MediaType,便是Internet Media Type,互聯網媒體類型;也叫作MIME類型,在Http協議消息頭中,使用Content-Type來表示具體請求中的媒體類型信息),可是卻不多有人去全面瞭解content-type中容許的值有多少,這裏將講解Content-Type的可用值:html
2. 以application開頭的媒體格式類型:json
3. 當在表單中須要上傳文件的時候,使用的媒體格式類型是:multipart/form-data瀏覽器
2、四種常見的POST提交數據方式的媒體格式類型詳解服務器
一、application/jsonapp
最終發送的請求是:
POST http://www.example.com HTTP/1.1
Content-Type: application/json;charset=utf-8
{"title":"test","sub":[1,2,3]}
這種方案,能夠方便的提交複雜的結構化數據,特別適合 RESTful 的接口。各大抓包工具如 Chrome 自帶的開發者工具、Firebug、Fiddler,都會以樹形結構展現 JSON 數據,很是友好。但也有些服務端語言尚未支持這種方式,例如 php 就沒法經過 $_POST 對象從上面的請求中得到內容。這時候,須要本身動手處理下:在請求頭中 Content-Type 爲 application/json 時,從 php://input 裏得到原始輸入流,再 json_decode 成對象。一些 php 框架已經開始這麼作了。
框架
二、application/x-www-form-urlencoded(Content-Type: application/x-www-form-urlencoded;charset=utf-8 )函數
這應該是最多見的 POST 提交數據的方式了。瀏覽器的原生 form 表單,若是不設置 encType 屬性,那麼最終就會以 application/x-www-form-urlencoded 方式提交數據;工具
三、multipart/form-datapost
當使用表單上傳文件時,必須設置encType屬性爲這個請求頭,下面是一個請求示例的network截圖:
上面提到的兩種表單方式都是瀏覽器原生支持的,並且現階段原生 form 表單也只支持這兩種方式。可是隨着愈來愈多的 Web 站點,尤爲是 WebApp,所有使用 Ajax 進行數據交互以後,咱們徹底能夠定義新的數據提交方式,給開發帶來更多便利。
四、text/xml
還沒有使用,如遇到的話會持續進行更新
3、參考資料