补习系列(2)-springboot mime类型处理

本文详细介绍了HTTP中的MIME类型及其重要性,通过SpringBoot展示了如何处理JSON和XML请求及响应,包括HTTP参数处理、文件上传下载以及获取原始字节流的方法。文章通过实例代码演示了SpringBoot中的ContentNegotiationManager和HttpMessageConverter如何实现内容转换。
摘要由CSDN通过智能技术生成

目标

  1. 了解http常见的mime类型定义;
  2. 如何使用springboot 处理json请求及响应;
  3. 如何使用springboot 处理 xml请求及响应;
  4. http参数的获取及文件上传下载;
  5. 如何获得原始请求的字节流;
    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
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值