HTTP 協(xié)議是以 ASCII 碼傳輸,建立在 TCP/IP 協(xié)議之上的應(yīng)用層規(guī)范。規(guī)范把 HTTP 請(qǐng)求分為三個(gè)部分:狀態(tài)行、請(qǐng)求頭高诺、消息主體
Get 請(qǐng)求不存在請(qǐng)求實(shí)體部分,鍵值對(duì)參數(shù)放置在 URL 尾部碾篡,因此請(qǐng)求頭不需要設(shè)置 Content-Type 字段
Post請(qǐng)求包括參數(shù)放在消息主體中虱而,開發(fā)者可自行定義消息主體的類型,而告知后端請(qǐng)求參數(shù)類型的方法就是通過設(shè)置requestheader里面的content-type來實(shí)現(xiàn)
application/x-www-form-urlencoded
在未設(shè)置enctype的form表單中开泽,默認(rèn)的content-type類型為application/x-www-form-urlencoded牡拇,該類型將參數(shù)轉(zhuǎn)換為key=value&key=value的形式傳遞給后端,但是不能通過其傳遞復(fù)雜參數(shù)
multipart/form-data
它會(huì)將表單的數(shù)據(jù)處理為一條消息,以標(biāo)簽為單元,用分隔符分開.既可以上傳鍵值對(duì),也可以上傳文件.當(dāng)上傳的字段是文件時(shí)會(huì)有Content-Type來表名文件類型;content-disposition用來說明字段的一些信息
由于有boundary隔離,所以multipart/form-data既可以上傳文件也可以上傳鍵值對(duì),它采用了鍵值對(duì)的方式,所以可以上傳多個(gè)文件
application/json
通過告知后端消息為序列化后的JSON字符串,可以方便用來提交復(fù)雜深層次的數(shù)據(jù)結(jié)構(gòu)