Java - content-type和MIME
简介
- content-type 用于定义用户的浏览器或相关设备如何显示将要加载的数据,或者如何处理将要加载的数据,此属性的值可以查看 MIME 类型。
- Content-Type 报头字符串代表着服务器端发送给客户端浏览器的具体数据类型,浏览器将根据这个信息决定如何处理得到的数据内容。比如:'Content-Type:text/html' 表示着这是个 HTML 文件,需要渲染引擎解释内容后输出;'Content-Type: application/octet-stream' 表示这是个二进制流,需要下载到本地后由用户端环境决定如何使用。每个浏览器内置支持的 Content-Type 类型表各不相同,这导致了某些类型字符串在某些浏览器下不被识别;另外,如果出现错误的 Content-Type 类型,各个浏览器又会以不同的方式处理。
- 一般是指网页中存在的 Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些 PHP 网页点击的结果却是下载一个文件或一张图片的原因。
MIME (Multipurpose Internet Mail Extensions,多用途互联网邮件扩展) 是描述消息内容类型的因特网标准。MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。
content-type的一般描述形式Content-Type: [type]/[subtype]; parameter
例如:
Content-Type: text/html; charset=utf-8
Content-Type: multipart/form-data; boundary=something
type 有下面的形式:
- Text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的;
- Multipart:用于连接消息体的多个部分构成一个消息,这些部分可以是不同类型的数据;
- Application:用于传输应用程序数据或者二进制数据;
- Message:用于包装一个E-mail消息;
- Image:用于传输静态图片数据;
- Audio:用于传输音频或者音声数据;
- Video:用于传输动态影像数据,可以是与音频编辑在一起的视频数据格式。
subtype 用于指定 type 的详细形式。“type/subtype”配对的集合和与此相关的参数。下面是最经常用到的一些 MIME 类型:
-
text/html(HTML 文档);
-
text/plain(纯文本);
-
text/css(CSS 样式表);
-
text/xml : XML格式;
-
image/gif(GIF 图像);
-
image/jpeg(JPG 图像);
-
image/png:png图片格式;
-
application/x-javascript(JavaScript 脚本);
-
application/x-shockwave-flash(Flash);
-
application/xhtml+xml :XHTML格式;
-
application/xml: XML数据格式;
-
application/atom+xml :Atom XML聚合格式;
-
application/json: JSON数据格式;
-
application/pdf:pdf格式;
-
application/msword : Word文档格式;
-
application/octet-stream : 二进制流数据(如常见的文件下载)
-
application/x-www-form-urlencoded :
-
multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式,但主要用于表单提交时伴随文件上传的场合。