MIME 是一个很大的标准规范,但 HTTP 只“顺手牵羊”取了其中的一部分,用来标记 body 的数据类型,这就是我们平常总能听到的“MIME type”。
常见的
1. text:即文本格式的可读数据,我们最熟悉的应该就是text/html 了,表示超文本文档,此外还有纯文本text/plain、样式表 text/css 等。
2. image:即图像文件,有 image/gif、image/jpeg、image/png 等。
3. audio/video:音频和视频数据,例如 audio/mpeg、video/mp4 等。
4. application:数据格式不固定,可能是文本也可能是二进制,必须由上层应用程序来解释。常见的有application/json,application/javascript、application/pdf 等,另外,如果实在是不知道数据是什么类型,像刚才说的“黑盒”,就会是application/octet-stream,即不透明的二进制数据。
压缩数据 Encoding type
1. gzip:GNU zip 压缩格式,也是互联网上最流行的压缩格式;
2. deflate:zlib(deflate)压缩格式,流行程度仅次于gzip;
3. br:一种专门为 HTTP 优化的新压缩算法(Brotli)。
有了 MIME type 和 Encoding type,无论是浏览器还是服务器就都可以轻松识别出 body 的类型,也就能够正确处理数据了。
HTTP 协议为此定义了两个 Accept 请求头字段和两个Content 实体头字段,用于客户端和服务器进行“内容协商”。也就是说,客户端用 Accept 头告诉服务器希望接收什么样的数据,而服务器用 Content 头告诉客户端实际发送了什么样的数据。












网友评论