MIME Type 媒体类型

媒体类型MIME type

服务器可以存储的资源类型多种多样如音频、视频、图片、ppt、excel、网页等,那浏览器怎么知道不同的类型怎么处理呢?这种时候需要服务器和客户端配合完成。
首先是服务器通过http协议仔细的给每种要传输的对象都打上名为MIME type的数据格式标签,用它来描述并标记多媒体内容即标注是哪种类型的资源并将结果通过Content-Type 追加到响应头中。客户端根据类型进行不同的处理。

背景知识

MIME类型最初是为多媒体电子邮件开发的,目前在HTTP和其他几种需要描述数据对象格式和用途的协议中也是用了MIME类型。

MIME类型由5份文档定义:

  • RFC 2045 MIME :Format of Internet Message Bodies 因特网报文主体的格式,描述了MIME报文结构的概况,并介绍了HTTP借用的Content-Type首部
  • RFC 2046 MIME :Media Types 介绍了类型及结构
  • RFC 2047 MIME:Message Header Extensions for Non-ascii text
  • RFC 2048 如何注册
  • RFC 2049 提供了样例

MIME类型结构

type/subtype[;xx=xx]

类型结构主义包含三部分,主类型type, 子类型subtype,可选参数

主类型与子类型两个字符串中间用’/'分隔而组成。不允许空格存在。

MIME类型对大小写不敏感,但是传统写法都是小写。

实例:Content-Type: text/html;charset=‘utf-8’

主类型

类型 描述 典型示例
text 表明文件是普通文件,理论上人类可读 text/plain,text/html,text/css, text/javascript
application 表明是某种二进制数据 application/octet-stream, application/xhtml+xml, application/xml, application/pdf
multipart 多部分对象集合 multipart/form-data,multipart/byteranges
audio 表明是某种音频文件 audio/ogg, audio/wav
video 表明是某种视频文件 video/webm, video/ogg
image 表明是某种图像。不包括视频,但是动态图(比如动态gif)也使用image类型 image/gif, image/png, image/jpeg, image/bmp, image/webp, image/x-icon, image/vnd.microsoft.icon

注意:

  • 对于text类型,如果没有子类型,则默认使用text/plain(纯文本,浏览器不做处理)

  • 对于application类型,如果没有子类型,则默认使用application/octet-stream即未分类的二进制数据

  • multipart/form-data,根据用户填表的结果将一组值封装起来

  • text/css:层级样式表

  • text/html:浏览器将按照html格式解析

  • text/plain:普通的文本,不做额外处理

  • text/xml

重要的MIME类型

application/octet-stream

这是应用程序文件的默认值。意思是 未知的应用程序文件 ,浏览器一般不会自动执行或询问执行。

text/plain

文本文件默认值。即使它意味着未知的文本文件,但浏览器认为是可以直接展示的。

text/css

在网页中要被解析为CSS的任何CSS文件必须指定MIME为text/css。通常,服务器不识别以.css为后缀的文件的MIME类型,而是将其以MIME为text/plain 或 application/octet-stream 来发送给浏览器:在这种情况下,大多数浏览器不识别其为CSS文件,直接忽略掉。特别要注意为CSS文件提供正确的MIME类型。

text/html

所有的HTML内容都应该使用这种类型。XHTML的其他MIME类型(如application/xml+html)现在基本不再使用(HTML5统一了这些格式)

text/javascript

据 HTML 标准,应该总是使用 MIME 类型 text/javascript 服务 JavaScript 文件

multipart/form-data

multipart/form-data 可用于HTML表单从浏览器发送信息给服务器。作为多部分文档格式,它由边界线(一个由’–'开始的字符串)划分出的不同部分组成。每一部分有自己的实体,以及自己的 HTTP 请求头,Content-Disposition和 Content-Type 用于文件上传领域,最常用的 (Content-Length 因为边界线作为分隔符而被忽略)。

你可能感兴趣的:(http,MIME,MIME,Type,媒体类型)