一、Content-Type 的值類型
1、application/x-www-form-urlencoded :
註解:窗體數據被編碼爲:名稱/值對。-----標準的編碼格式
作用:默認方式在請求過程中會對數據進行序列化處理,以鍵值對的形式的方式發送到服務器 ?key1=value1&key2=value2
優點:所有瀏覽器都支持
傳遞過程:
1. 前端以鍵值對的形式傳遞
2. application/x-www-form-urlencoded會通過 EncodeURL() 對其進行編碼,給到服務端
3. 服務器通過 URLdecoder.decode() 進行解碼,
4. 後端通過request.getParameter() 獲取參數
2、application/json
註解:消息主體是序列化後的 JSON 字符串
作用:通知服務器請求主體是以 json 格式的字符串,服務端會以 進行對 json 字符串解析
優點:前端人員不需要關注數據結構的複雜度、只需要傳遞標準的 json 格式即可
傳遞過程:
1. 前端將 json 對象轉化爲 字符串或者二進制 (此處分爲2種傳輸數據格式)
2. 服務器對 json 字符串不進行編碼
3. 後端通過 2種方式接收,
- 字符流取值-request.getReader()
- 字節流取值-request.getinputStream()
3、multipart/form-data
註解:主要用於傳輸文件、將文件轉換成二進制數據進行傳輸,不設計轉碼問題,常見的媒體格式上傳
作用:通知服務器請求是需要上傳文件格式類型,服務器不進行編碼
優點:前端人員不需要關注數據結構的複雜度、只需要傳遞標準的 文件 格式即可
傳遞過程:
1. 前端 上傳文件,得到文件格式的參數
2. 服務器對 文件格式參數不進行編碼
3. 後端通過 request.getInputStream() 取值
4、text/plain
註解:數據以純文本形式進行編碼,其中不包含任何控件或格式字符, 大部分情況不會使用,這裏不做過多註解