HTTP 的 Content-Type 及其媒体类型(MIME)
Content-Type
Content-Type 代表 HTTP 携带的文件类型,决定文件接收方或发送方将以什么形式、什么编码读取这个文件。下图,load.gif 的媒体类型就是 image/gif:

媒体类型
MIMEIETF RFC 6838 (Multipurpose Internet Mail Extensions)是一种标准,用来表示文档、文件或字节流的性质和格式。
客户端向 Web 服务器请求大量的资源,包括图片、音频、视频、CSS、JavaScript。给 Content-Type 添加 MIME,浏览器以正确的方式处理文件。如果配置不正确,浏览器可能会曲解文件内容,网页将无法正常工作,并且下载的文件也会被错误处理。
媒体类型结构
MIME 的组成结构非常简单,由类型与子类型两个字符串中间用 "/" 分隔而组成。"type" 表示可以被分多个子类的独立类别;"subtype" 表示细分后的每个类型。
type/subtype
独立媒体类型
有 TEXT(文本)、IMAGE(图像)、AUDIO(音频)、VIDEO(视频)、APPLICATION(应用程序)这五种独立媒体类型。
| 独立媒体类型 | 主类型 | RFC 定义 | 子类型 |
|---|---|---|---|
| TEXT | 表明是某种文本文件 | RFC 6838 - 4.2.1 | text/plain, text/html, text/css |
| IMAGE | 表明是某种图像文件 | RFC 6838 - 4.2.2 | image/gif, image/png |
| AUDIO | 表明是某种音频文件 | RFC 6838 - 4.2.3 | audio/midi, audio/mpeg |
| VIDEO | 表明是某种视频文件 | RFC 6838 - 4.2.4 | video/webm, video/ogg |
| APPLICATION | RFC 6838 - 4.2.5 | application/javascript |
复合媒体类型
上面五个独立媒体类型要求内容只能其中一种独立媒体类型,不可以包含多独立媒体类型;而 MULTIPARTRFC 6838 - 4.2.6可以让内容包含多种独立媒体类型,所以它是符合媒体类型。
MULTIPART 的子类型通常是 "form-data",也就是 "multipart/form-data"。它通常用来上传文件时所使用的一种 MIME 类型。把文件发送给 Web 服务器:
// 构造 FormData
let formData = new FormData();
// 1. 添加多个文件
for (let index in this.files) {
formData.append('files', this.files[index]);
}
// 2. 添加两个文本
formData.append('name', this.user.name);
formData.append('sex', this.user.sex);
// 3. 发送请求
axios.post('http://localhost:8080/upload', formData, {
// 配置 MIME
headers: {
'content-type': 'multipart/form-data'
}
});
@RequestMapping(value = "/upload", consumes = "multipart/form-data")
public void upload(@RequestParam("name") String name, @RequestParam("sex") String sex, @RequestParam("files") MultipartFile[] files) {
System.out.println("{ sex: " + name + ", sex: " + sex + " }");
for (MultipartFile file : files) {
System.out.println(file.getOriginalFilename());
}
}
复合媒体类型包含多种媒体类型,这个请求中包含 TEXT 和 IMAGE 媒体类型。

HTTP 的 Content-Type 及其媒体类型(MIME)的更多相关文章
- 互联网媒体类型 MIME Type
参考:https://zh.wikipedia.org/wiki/%E4%BA%92%E8%81%94%E7%BD%91%E5%AA%92%E4%BD%93%E7%B1%BB%E5%9E%8B 互联网 ...
- 媒体类型(MIME类型)
# encoding=utf-8 #python 2.7.10 #xiaodeng #HTTP权威指南 #HTTP协议:超文本传输协议是在万维网上进行通信时所使用的协议方案. #媒体类型: #HTTP ...
- 003-RFC关于媒体类型说明
一.概述 RFC-822 Standard for ARPA Internet text messages [ARPA互连网文本信息标准]RFC-2045 MIME Part 1: Format ...
- .NET获取文件的MIME类型(Content Type)
第一种:这种获取MIME类型(Content Type)的方法需要在.NET 4.5之后才能够支持,但是非常简单. 优点:方便快捷 缺点:只能在.NET 4.5之后使用 public FileResu ...
- HTTP请求415错误 – 不支持的媒体类型(Unsupported media type)
HTTP请求415错误 – 不支持的媒体类型(Unsupported media type) 通常有以下情况: 1:检查你的 http 请求头信息,比如 因为 User-Agent 被服务器设置 拒绝 ...
- media query(媒体查询)和media type(媒体类型)
media type(媒体类型)是css 2中的一个非常有用的属性,通过media type我们可以对不同的设备指定特定的样式,从而实现更丰富的界面.media query(媒体查询)是对media ...
- [.NET Core]ASP.NET Core中如何解决接收表单时的不支持的媒体类型(HTTP 415 Unsupported Media Type)错误呢?
[.NET Core]ASP.NET Core中如何解决接收表单时的不支持的媒体类型(HTTP 415 Unsupported Media Type)错误呢? 在ASP.NET Core应用程序中,接 ...
- Web API中给领域模型添加媒体类型支持
一.媒体类型 媒体类型(也称为MIME类型)标识一段数据的格式.在HTTP中,媒体类型描述了消息体的格式.媒体类型由两个字符串组成,一个类型和一个子类型.例如:text / html: image/ ...
- Web API 入门 二 媒体类型
还是拿上面 那篇 Web API 入门 一 的那个来讲 在product类中加一个时间属性
随机推荐
- 2021.10.19 CSP 模拟赛 总结
T1 题意: \(n\) 个人摘苹果,跳起高度为 \(a_i\),苹果高度为 \(h_i\),高度小的先摘,摘了就没了 直接排序+双指针,复杂度 \(O(n+m)\) T2 题意:要轰炸一个有向图的所 ...
- Camunda定时器事件示例Demo(Timer Events)
Camunda定时器事件(Timer Events)是由定义的计时器触发的事件.它们可以用作启动事件.中间事件或边界事件.边界事件可以中断,也可以不中断. Camunda定时器事件包括:Timer ...
- 给王心凌打Call的,原来是神奇的智能湖仓
图文原创:谭婧(王凌老粉) "爷青回" "我们只是老了,并没有死." 谭老师作为老粉,热烈庆祝"甜心教主"王凌成为现象级翻红顶流. 只要地球 ...
- redis如何实现数据同步
redis如何实现数据同步 两种,1全同步,2部分同步 全备份: 在slave启动时会向master发送sync消息,master收到slave这条消息之后,将启动后台备份进程,备份完成之后,将备份数 ...
- Spring Security:用户和Spring应用之间的安全屏障
摘要:Spring Security是一个安全框架,作为Spring家族的一员. 本文分享自华为云社区<[云驻共创]深入浅出Spring Security>,作者:香菜聊游戏. 一.前言 ...
- 深入理解springboot的自动注入
一.开篇 在平时的开发过程中用的最多的莫属springboot了,都知道springboot中有自动注入的功能,在面试过程中也会问到自动注入,你知道自动注入是怎么回事吗,springboot是如何 ...
- RPA应用场景-信用卡交易争议后续流程
RPA应用场景-信用卡交易争议后续流程 场景概述 信用卡交易争议后续流程 所涉系统名称 客服系统,邮件 人工操作(时间/次) 4小时 所涉人工数量20操作频率 不定时 场景流程 1.RPA自动接收客户 ...
- Linux文本管理命令
touch命令: 创建空文件:touch newfile 也可以使用重定向符(>)创建空文件: > newfile 刷新文件时间: touch 已经存在的文件 cp命令:文件的复制 选项: ...
- 以脚本形式运行python库
技术背景 当我们尝试运行python的帮助文档时,会看到如下这样的一个说明: $ python3 -h usage: python3 [option] ... [-c cmd | -m mod | f ...
- D2C小练习
前端智能化现状及未来展望 简介 DEsign: Sketch,Photoshop ,Figma 起源:微软2017年, Design to code code: 前端 核心原理 design----& ...