-
Content-Type
,內容型別,一般是指網頁中存在的Content-Type
,用於定義網路檔案的型別和網頁的編碼,用來在程式間傳送內容相關的編碼資訊,資料型別資訊,前端以何種資料格式傳遞給後端。 -
Accept
,代表傳送端(客戶端)希望接受的資料型別。 -
Http content-Type
有很多種,點選檢視,這裡看集中常見的型別。
1.application/x-www-form-urlencoded
-
最常見的請求格式,原生
form
表單請求結構,以鍵值對的形式傳遞預設會以這種方式;提交的資料按照key1=val1&key2=val2
的方式進行編碼,key
和val
都進行了URL
轉碼。大部分服務端語言都對這種方式有很好的支援Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Content-Type:application/x-www-form-urlencoded Form Data first_name=i&last_name=i
2.multipart/form-data
-
常見的
POST
資料提交的方式。這種方式一般用來上傳檔案,各大服務端語言對它也有著良好的支援。一般會生成了一個boundary
用於分割不同的欄位,為了避免與正文內容重複,boundary
很長很複雜。然後Content-Type
裡指明瞭資料是以mutipart/form-data
來編碼,本次請求的boundary
是什麼內容。訊息主體裡按照欄位個數又分為多個結構類似的部分,每部分都是以--boundary
開始,緊接著內容描述資訊,然後是回車,最後是欄位具體內容(文字或二進位制)。如果傳輸的是檔案,還要包含檔名和檔案型別資訊。訊息主體最後以--boundary--
標示結束Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW ------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="key" value ------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="testKey" testValue ------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="imgFile"; filename="no-file" Content-Type: application/octet-stream <data in here> ------WebKitFormBoundary7MA4YWxkTrZu0gW--
3.application/json
-
現在以JSON格式作為請求頭越來越主流。
Accept:application/json, text/plain, */* Content-Type:application/json;charset=UTF-8 Request payLoad {name: "m", password: "hkkk", email: "123"}