目标
- 了解http常见的mime类型定义;
- 如何使用springboot 处理json请求及响应;
- 如何使用springboot 处理 xml请求及响应;
- http参数的获取及文件上传下载;
- 如何获得原始请求的字节流;
6.了解springboot 如何实现内容转换;
一、关于MIME
MIME的全称是Multipurpose Internet Mail Extensions,即多用途互联网邮件扩展,尽管读起来有些拗口,但大多数人可能都知道,
这是HTTP协议中用来定义文档性质及格式的标准。IETF RFC 6838,对HTTP传输内容类型进行了全面定义。
而IANA(互联网号码分配机构)是负责管理所有标准MIME类型的官方机构。可以在这里)找到所有的标准MIME
服务器通过MIME告知响应内容类型,而浏览器则通过MIME类型来确定如何处理文档;
因此为传输内容(文档、图片等)设置正确的MIME非常重要。
通常Server会在HTTP响应中设置Content-Type,如下面的响应:
HTTP/1.1 200 OK
Server: Golfe2
Content-Length: 233
Content-Type: application/html
Date: Sun, 28 Dec 2018 02:55:19 GMT
这表示服务端将返回html格式的文档,而同样客户端也可以在HTTP请求中设置Content-Type以告知服务器当前所发送内容的格式。
如下面的请求体:
POST / HTTP/1.1
Host: localhost:8000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Connection: keep-alive
Content-Type: application/json
Content-Length: 465
这表示客户端会发送application/json格式的数据到服务端,同时应该注意到Accept请求头,这个选项用于告知服务器应该返回什么样的数据格式(由客户端接收并完成解析)。
MIME的格式
type/subtype
这是一个两级的分类,比较容易理解,第一级分类通常包含:
类型 | 描述 |
---|---|
text | 普通文本 |
image | 某种图像 |
audio | 某种音频文件 |
video | 某种视频文件 |
application | 应用数据 |
multi-part | 复合内容 |
而二级类型则非常多,以下是一些常用的MIME:
MIME | 描述 |
---|---|
audio/wav | wave音频流媒体文件 |
audio/webm | webm 音频文件格式 |
audio/ogg | ogg多媒体文件格式的音频文件 |
audio/mpeg | mpeg多媒体文件格式的音频文件 |
image/gif | gif图片 |
image/jpeg | jpeg图片 |
image/png | png图片 |
image/svg+xml | svg矢量图片 |
application/json | json格式 |
application/xml | xml格式 |
application/xhtml+xml | 扩展html格式 |
application/x-www-form-urlencoded | 表单url内容编码 |
application/octet-stream | 二进制格式 |
application/pdf | pdf文档 |
application/atom+xml | atom订阅feed流 |
multipart/form-data | 多文档格式 |
text/plain | 普通文本 |
text/html | html文档 |
text/css |