(一)form-data:
- 對應於http請求中的multipart/form-data。
- 它會將表單的數據處理為一條消息,以標簽為單元,用分隔符分開。
- 既可以上傳鍵值對,也可以上傳文件。
- Content-disposition,用來說明字段的一些信息。
- 當上傳的 key 是文件時: Content-Type 來表名文件類型。
從下圖可以看到
- boundary:將所有請求參數進行包裹
- Content-Disposition:表明請求字段信息。
- Content-Type:請求頭信息中:表明請求數據的類型為-- multipart/for-data;文件類型的key中:表明文件類型為-- image/jpeg、audio/mp3。
(二)x-www-form-urlencoded
- 就是application/x-www-from-urlencoded,會將表單內的數據轉換為鍵值對,&分隔。
- 當form的action為get時,瀏覽器用x-www-form-urlencoded的編碼方式,將表單數據編碼為(name1=value1&name2=value2…),然后把這個字符串append到url后面,用?分隔,跳轉到這個新的url。
- 當form的action為post時,瀏覽器將form數據封裝到http body中,然后發送到server。
- 這個格式不能提交文件。
如下圖
- Content-Type:表明請求參數類型為-- application/x-www-form-urlencoded。
- 將參數拼接為鍵值對:k1=v1&k2=v2。
(三)raw
- 可以上傳任意格式的參數,可以上傳text、json、xml、html等。
(四)binary
- 相當於Content-Type:application/octet-stream,只可以上傳二進制數據,通常用來上傳文件,由於沒有鍵值,所以一次只能上傳一個文件。
multipart/form-data與x-www-form-urlencoded區別
- multipart/form-data:既可以上傳文件,也可以上傳鍵值對,最后會轉化為一條信息。
- x-www-form-urlencoded:只能上傳鍵值對,並且鍵值對都是間隔分開的。