-
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"}