HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为三个部分:状态行、请求头、消息主体
Get 请求不存在请求实体部分,键值对参数放置在 URL 尾部,因此请求头不需要设置 Content-Type 字段
Post请求包括参数放在消息主体中,开发者可自行定义消息主体的类型,而告知后端请求参数类型的方法就是通过设置requestheader里面的content-type来实现
application/x-www-form-urlencoded
在未设置enctype的form表单中,默认的content-type类型为application/x-www-form-urlencoded,该类型将参数转换为key=value&key=value的形式传递给后端,但是不能通过其传递复杂参数
multipart/form-data
它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开.既可以上传键值对,也可以上传文件.当上传的字段是文件时会有Content-Type来表名文件类型;content-disposition用来说明字段的一些信息
由于有boundary隔离,所以multipart/form-data既可以上传文件也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件
application/json
通过告知后端消息为序列化后的JSON字符串,可以方便用来提交复杂深层次的数据结构