一、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
注解:数据以纯文本形式进行编码,其中不包含任何控件或格式字符, 大部分情况不会使用,这里不做过多注解