Node - Content-Type & Content-Disposition
Node - Content-Type & Content-Disposition
Content-Type
Content-Type(MediaType),即是Internet Media Type,互联网媒体类型,也叫做MIME(Multipurpose Internet Mail Extensions)类型。在互联网中有成百上千中不同的数据类型,HTTP在传输数据对象时会为他们打上称为MIME的数据格式标签,用于区分数据类型。最初MIME是用于电子邮件系统的,后来HTTP也采用了这一方案。不同的文件具有不同的MIME值,如JSON文件的值为application/json,XML文件的值为application/xml等。Content-Type的格式:
Content-Type:type/subtype ;parameter- type:主类型,任意的字符串,如text,如果是*号代表所有;
- subtype:子类型,任意的字符串,如html,如果是*号代表所有,用“/”与主类型隔开;
- parameter:可选参数,如charset,boundary等。
例如:
Content-Type: text/html;
Content-Type: application/json;charset:utf-8;为了方便获知文件MIME值,Node社区提供了mime模块来判断文件类型,它的使用十分简单,如下:
1
2
3let mime = require('mime');
mime.getType('file.html'); // => 'text/html'
mime.getType('file.text'); // => 'text/plain'Content-Disposition
在一些场景中,无论响应的内容是什么样的MIME值,不需要我们客户端去打开它,而需要其弹出并下载。为了满足这种需求,Content-Disposition字段诞生了。客户端会根据Content-Disposition的值判断是应该将报文数据当做即时浏览的内容,还是可下载的附件。当内容需要查看时,它的值是inline;当数据可以存为附件时,他的值是attachment。另外,Content-Dispositon字段还能通过参数指定保存时应该使用的文件名。格式如下:1
Content-Disposition: attachment;filename='filename.ext'