`

MIME type

 
阅读更多

MIME type的缩写为(Multipurpose Internet Mail Extensions)代表互联网媒体类型(Internet media type),MIME使用一个简单的字符串组成,最初是为了标识邮件Email附件的类型,在html文件中可以使用content-type属性表示,描述了文件类型的互联网标准。

MIME类型能包含视频、图像、文本、音频、应用程序等数据。

 

content-type

要学习content-type,必须事先知道它到底是什么,是干什么用的。

HTTP协议(RFC2616)采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户 信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以 及可能的实体内容。

通常HTTP消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。HTTP的头域包括通用头,请求头,响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域 值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。

请求消息和响应消息都可以包含实体信息,实体信息一般由实体头域和实体组成。实体头域包含关于实体的原信息,实体头包括Allow、Content- Base、Content-Encoding、Content-Language、 Content-Length、Content-Location、Content-MD5、Content-Range、Content-Type、 Etag、Expires、Last-Modified、extension-header。
Content-Type是返回消息中非常重要的内容,表示后面的文档属于什么MIME类型。Content-Type: [type]/[subtype]; parameter。例如最常见的就是text/html,它的意思是说返回的内容是文本类型,这个文本又是HTML格式的。原则上浏览器会根据Content-Type来决定如何显示返回的消息体内容。

type有下面的形式。
Text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的;
Multipart:用于连接消息体的多个部分构成一个消息,这些部分可以是不同类型的数据;
Application:用于传输应用程序数据或者二进制数据;
Message:用于包装一个E-mail消息;
Image:用于传输静态图片数据;
Audio:用于传输音频或者音声数据;
Video:用于传输动态影像数据,可以是与音频编辑在一起的视频数据格式。
subtype用于指定type的详细形式。content-type/subtype配对的集合和与此相关的参数,将随着时间而增长。为了确保这些值在一个有序而且公开的状态下开发,MIME使用Internet Assigned Numbers Authority (IANA)作为中心的注册机制来管理这些值。

parameter可以用来指定附加的信息,更多情况下是用于指定text/plain和text/htm等的文字编码方式的charset参数。MIME根据type制定了默认的subtype,当客户端不能确定消息的subtype的情况下,消息被看作默认的subtype进行处理。Text默认是text/plain,Application默认是application/octet-stream而Multipart默认情况下被看作multipart/mixed。
MIME定义在RFC-2046 MIME Part 2: Media Types 。

对于IE6浏览器来说,如果Content-Type中的类型和实际的消息体类型不一致,那么它会根据内容中的类型来分析实际应该是什么类型,对于JPG、GIF等常用图片格式都可以正确的识别出来,而不管Content-Type中写的是什么。
如果Content-Type中指定的是浏览器可以直接打开的类型,那么浏览器就会直接打开其内容显示出来,如果是被关联到其它应用程序的类型,这时就要查找注册表中关于这种类型的注册情况,如果是允许直接打开而不需要询问的,就会直接调出这个关联的应用程序来打开这个文件,但如果是不允许直接打开的,就会询问是否打开。对于没有关联到任何应用程序的类型,IE浏览器不知道它该如何打开,此时IE6就会把它当成XML来尝试打开。
如果要想实现文件下载,可以在http的头中加入:

fprintf( file, "Content-Disposition:attachment; filename="%s" rn", fileName);

经过测试,html,pdf,gif等原来在网页中打开的文件都可以正常实现下载。

MIME_type类型语法

media-type=type "/" subtype *( ";" parameter ) 

媒体类型(type)与子类型(subtype)组成了MIME,它们之间使用反斜杠/分割,其中type可取值为:application audio example image message model multipart text video,subtype是某种类型的唯一标识符,比如:css gif xml等。

对于IE6浏览器来说,如果Content-Type中的类型和实际的消息体类型不一致,那么它会根据内容中的类型来分析实际应该是什么类型,对于JPG、GIF等常用图片格式都可以正确的识别出来,而不管Content-Type中写的是什么。
如果Content-Type中指定的是浏览器可以直接打开的类型,那么浏览器就会直接打开其内容显示出来,如果是被关联到其它应用程序的类型,这时就要查找注册表中关于这种类型的注册情况,如果是允许直接打开而不需要询问的,就会直接调出这个关联的应用程序来打开这个文件,但如果是不允许直接打开的,就会询问是否打开。对于没有关联到任何应用程序的类型,IE浏览器不知道它该如何打开,此时IE6就会把它当成XML来尝试打开。
如果要想实现文件下载,可以在http的头中加入:

fprintf( file, "Content-Disposition:attachment; filename="%s" rn", fileName);

经过测试,html,pdf,gif等原来在网页中打开的文件都可以正常实现下载。

MIME示例

text/css

标明此文件的type为text(文本),且subtype为css(层叠样式表)

image/gif

标明此文件的type为image(图像),且subtype为gif(Graphics Interchange Format)

按照功能排列的MIME_type类型

类型/子类型 扩展名
application/envoy evy
application/fractals fif
application/futuresplash spl
application/hta hta
application/internet-property-stream acx
application/mac-binhex40 hqx
application/msword doc
application/msword dot
application/octet-stream *
application/octet-stream bin
application/octet-stream class
application/octet-stream dms
application/octet-stream exe
application/octet-stream lha
application/octet-stream lzh
application/oda oda
application/olescript axs
application/pdf pdf
application/pics-rules prf
application/pkcs10 p10
application/pkix-crl crl
application/postscript ai
application/postscript eps
application/postscript ps
application/rtf rtf
application/set-payment-initiation setpay
application/set-registration-initiation setreg
application/vnd.ms-excel xla
application/vnd.ms-excel xlc
application/vnd.ms-excel xlm
application/vnd.ms-excel xls
application/vnd.ms-excel xlt
application/vnd.ms-excel xlw
application/vnd.ms-outlook msg
application/vnd.ms-pkicertstore sst
application/vnd.ms-pkiseccat cat
application/vnd.ms-pkistl stl
application/vnd.ms-powerpoint pot
application/vnd.ms-powerpoint pps
application/vnd.ms-powerpoint ppt
application/vnd.ms-project mpp
application/vnd.ms-works wcm
application/vnd.ms-works wdb
application/vnd.ms-works wks
application/vnd.ms-works wps
application/winhlp hlp
application/x-bcpio bcpio
application/x-cdf cdf
application/x-compress z
application/x-compressed tgz
application/x-cpio cpio
application/x-csh csh
application/x-director dcr
application/x-director dir
application/x-director dxr
application/x-dvi dvi
application/x-gtar gtar
application/x-gzip gz
application/x-hdf hdf
application/x-internet-signup ins
application/x-internet-signup isp
application/x-iphone iii
application/x-javascript js
application/x-latex latex
application/x-msaccess mdb
application/x-mscardfile crd
application/x-msclip clp
application/x-msdownload dll
application/x-msmediaview m13
application/x-msmediaview m14
application/x-msmediaview mvb
application/x-msmetafile wmf
application/x-msmoney mny
application/x-mspublisher pub
application/x-msschedule scd
application/x-msterminal trm
application/x-mswrite wri
application/x-netcdf cdf
application/x-netcdf nc
application/x-perfmon pma
application/x-perfmon pmc
application/x-perfmon pml
application/x-perfmon pmr
application/x-perfmon pmw
application/x-pkcs12 p12
application/x-pkcs12 pfx
application/x-pkcs7-certificates p7b
application/x-pkcs7-certificates spc
application/x-pkcs7-certreqresp p7r
application/x-pkcs7-mime p7c
application/x-pkcs7-mime p7m
application/x-pkcs7-signature p7s
application/x-sh sh
application/x-shar shar
application/x-shockwave-flash swf
application/x-stuffit sit
application/x-sv4cpio sv4cpio
application/x-sv4crc sv4crc
application/x-tar tar
application/x-tcl tcl
application/x-tex tex
application/x-texinfo texi
application/x-texinfo texinfo
application/x-troff roff
application/x-troff t
application/x-troff tr
application/x-troff-man man
application/x-troff-me me
application/x-troff-ms ms
application/x-ustar ustar
application/x-wais-source src
application/x-x509-ca-cert cer
application/x-x509-ca-cert crt
application/x-x509-ca-cert der
application/ynd.ms-pkipko pko
application/zip zip
audio/basic au
audio/basic snd
audio/mid mid
audio/mid rmi
audio/mpeg mp3
audio/x-aiff aif
audio/x-aiff aifc
audio/x-aiff aiff
audio/x-mpegurl m3u
audio/x-pn-realaudio ra
audio/x-pn-realaudio ram
audio/x-wav wav
image/bmp bmp
image/cis-cod cod
image/gif gif
image/ief ief
image/jpeg jpe
image/jpeg jpeg
image/jpeg jpg
image/pipeg jfif
image/svg+xml svg
image/tiff tif
image/tiff tiff
image/x-cmu-raster ras
image/x-cmx cmx
image/x-icon ico
image/x-portable-anymap pnm
image/x-portable-bitmap pbm
image/x-portable-graymap pgm
image/x-portable-pixmap ppm
image/x-rgb rgb
image/x-xbitmap xbm
image/x-xpixmap xpm
image/x-xwindowdump xwd
message/rfc822 mht
message/rfc822 mhtml
message/rfc822 nws
text/css http://www.dreamdu.com css
text/h323 323
text/html htm
text/html html
text/html stm
text/iuls uls
text/plain bas
text/plain c
text/plain h
text/plain txt
text/richtext rtx
text/scriptlet sct
text/tab-separated-values tsv
text/webviewhtml htt
text/x-component htc
text/x-setext etx
text/x-vcard vcf
video/mpeg mp2
video/mpeg mpa
video/mpeg mpe
video/mpeg mpeg
video/mpeg mpg
video/mpeg mpv2
video/quicktime mov
video/quicktime qt
video/x-la-asf lsf
video/x-la-asf lsx
video/x-ms-asf asf
video/x-ms-asf asr
video/x-ms-asf asx
video/x-msvideo avi
video/x-sgi-movie movie
x-world/x-vrml flr
x-world/x-vrml vrml
x-world/x-vrml wrl
x-world/x-vrml wrz
x-world/x-vrml xaf
x-world/x-vrml xof
分享到:
评论

相关推荐

    MimeType文件校验demo

    在IT行业中,MimeType(MIME类型)是一种标准,用于标识互联网上的文件类型和编码方式。MimeType文件校验是网络服务中常见的操作,特别是在处理用户上传的文件时,它能确保服务器正确地解析和处理文件。本示例"Mime...

    常用的MIME TYPE类型枚举类Enum整理 静态方法直接检索使用

    示例代码:String mimeType = MimeTypeEnum.getMimeTypeBySuffix("txt"); 不仅是一款实用的开发工具,更是代码整洁与项目高效管理的体现。通过它,可以专注于业务逻辑的实现,而将MIME类型管理的繁杂细节交给我们。...

    常用文件的mime和mimetype.txt

    常用文件的mime和mimetype,几乎包括所有文件,大概有1000多项

    php获得文件的mime type类.zip

    $mimeType = MimeTypeDetector::detectMimeType($filePath); echo "File MIME Type: " . $mimeType; ``` 在实际开发中,可以根据项目需求进一步优化这个类,例如增加对大型文件的支持,避免一次性加载整个文件,...

    javax.activation.UnsupportedDataTypeException: no object DCH for MIME type

    javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed; boundary="----=_Part_0_1760344884.1407394057461" 第一步:需要先grantq权限: EXEC dbms_java.grant_...

    php获得文件的mime type类

    $mimeType = finfo_file($finfo, $file); // 获取MIME类型 finfo_close($finfo); // 关闭fileinfo对象 ``` 这种方法基于文件内容来判断MIME类型,准确度较高。 2. **`mime_content_type()`** 函数:这是一个较旧但...

    关于mime type的文章

    标题“关于mime type的文章”指出,我们即将探讨的是MIME类型(Multipurpose Internet Mail Extensions)的相关知识。MIME类型是互联网标准,用于标识通过网络传输的数据类型,比如在电子邮件、HTTP协议中,以及在...

    MimeType列表 20201005版本

    常见文件的扩展名对应mimetype的对应关系列表,csv格式可使用excel打开,方便查看。或者制作成项目内工具类调用判断。

    MIME Type 常見的格式類型列表

    ### MIME Type 常见的格式类型列表 MIME(Multipurpose Internet Mail Extensions)类型是一种标准,用于定义互联网上传输的不同数据格式。随着互联网技术的发展,MIME规范也在不断发展和完善中,因此MIME类型可能...

    mime type类型详解

    详细列出mime的所有文件类型 开发必备技术文档 尤其是页面下载文件、数据存储文件的metadata数据

    mime type 与 扩展名对应表

    最全的Mime type 和扩展名的对应表,媒体解析,流媒体开发不可或缺的资料。

    根据文件扩展名解析并返回对应的内容类型MIME Type

    【根据文件扩展名解析并返回对应的内容类型MIME Type】 常见的Microsoft Office文件类型有:doc、docx、xls、xlsx、ppt、pptx等 常见的Pdf文件类型有:pdf 常见的图像文件类型有:png、jpg、jpeg、gif等 常见的...

    Java 读取图片的mimeType的方法

    Java 读取图片的mimeType的方法 Java 读取图片的mimeType的方法是指通过编解码的方式判断图片是否合法,从而获取图片的mimeType。这种方法可以避免通过文件后缀名来判断图片格式的不可靠性。下面是 Java 读取图片...

    Http MIME type

    MIME类型的基本格式是“type/subtype”,其中“type”代表数据的主要类型,而“subtype”则进一步指明数据的具体格式。常见的类型包括文本(text)、音频(audio)、视频(video)、应用程序(application)等。 在Web开发...

    mimetype-js:用于将文件扩展名映射到其 MIME 类型字符串的 MIME 类型目录

    mimetype-js概述我发现继续为MIME类型制作这些文件扩展名查找表。 是时候把它放在一个模块中来省去麻烦了。例子一般情况var mimetype = require ( 'mimetype' ) ;console . log ( mimetype . lookup ( "myfile.txt" ...

    PyPI 官网下载 | mimetype_description-0.0.5-py3-none-any.whl

    标题中的“PyPI 官网下载 | mimetype_description-0.0.5-py3-none-any.whl”表明这是一个从Python Package Index(PyPI)官方源下载的软件包,名为`mimetype_description`,版本为0.0.5,适配Python 3环境,且不依赖...

    java-enum-mimetype:MIME 类型的 Java 枚举类

    MimeType mimeType = MimeType.fromString("image/jpeg"); response.setContentType(mimeType.getValue()); ``` `java-enum-mimetype-master`项目很可能是包含了这个枚举类实现的源代码,可能还包含了一些测试...

    web.xml 最全 MIME Type Mappings

    web.xml 最全 MIME Type Mappings 大概有 一千多个

    MIME-type MIME-type MIME-type MIME-type

    根据提供的文件信息,我们可以深入探讨MIME类型(Multipurpose Internet Mail Extensions)的相关知识点。MIME类型主要用于描述网络文件的格式,通常在网络传输中用于告诉接收方如何解释数据。以下是对标题、描述及...

    web.xml中的mime-type标签作用与使用

    ### Web.xml中的MIME-Type标签作用与使用详解 在Java Web开发中,`web.xml`配置文件扮演着至关重要的角色。它定义了Web应用程序的基本结构和行为,包括Servlet的映射、过滤器、监听器等配置。其中,`mime-mapping`...

Global site tag (gtag.js) - Google Analytics