iOS 探讨之 HTTP MIME Content-Type

来源:互联网 发布:linux 电池驱动 编辑:程序博客网 时间:2024/05/22 18:28
阐述
在做网络模块时,我们经常需要对网络接收管理的 acceptableContentTypes 做一些设置, 如
    self.operationManager.responseSerializer.acceptableContentTypes = [NSSetsetWithObjects:@"application/json",@"text/html",@"text/plain",@"application/octet-stream",nil];

我们大概了解每条项目的大概意义,但是这个东西具体是什么,则没有深入了解过。本着无聊瞎翻翻的态度,在百度上找了一些资料,整合一下,以供后来研究。

探讨
什么是MIME?
MIME   英文全称 Multipurpose Internet Mail Extensions
            中文全称 多用途互联网邮件扩展类型

百科的解释
是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

笔者的粗见
可以看做是数据类型在传输中的一种约定(标准),双方通过这种约定来确定当前数据是什么类型文件,后续该用怎样的方式进行处理。

大家通过MIME的中文全称也能看出来,它最开始应用于互联网电子邮件领域。后来逐渐发展,万维网HTTP协议中也引进了MIME的框架,这样就能解释通今天我们在做移动端网络模块时能够经常碰见它们。

根据百科的资料,最早的HTTP协议中是没有附加的数据类型信息,所有传输的数据都被客户程序解释为超文本标记语言(HTML文档),后期为了支持多媒体数据类型,HTTP协议中就使用了附加在文档之前的MIME数据类型信息来标识数据类型。 MIME类型由 大类别/具体种类 这种形式组成,前面是数据的大类别,例如声音audio、图象image等,后面则是定义数据的具体种类。

一般在HTTP中,MIME类型都是被定义在Content-Type header中。

什么是Content-Type?
Content-Type 定义了数据的类型,以便数据能被适当的处理。有效的类型有:text,image,audio,video,applications,multipart和message。注意任何一个二进制附件都应该被叫做application/octet- stream。

常用的列表
超文本标记语言文本     .html                 text/html
xml文档                         .xml                  text/xml
XHTML文档                  .xhtml               application/xhtml+xml
普通文本                       .txt                    text/plain
RTF文本                       .rtf                    application/rtf
PDF文档                       .pdf                  application/pdf
Microsoft Word文件     .word                application/msword
PNG图像                     .png                  image/png
GIF图形                       .gif                    image/gif
JPEG图形                    .jpeg,.jpg          image/jpeg
au声音文件                  .au                   audio/basic
RealAudio音乐文件     .ra, .ram           audio/x-pn-realaudio
MPEG文件                  .mpg,.mpeg      video/mpeg
AVI文件                        .avi                  video/x-msvideo        
GZIP文件                     .gz                   application/x-gzip
TAR文件                       .tar                  application/x-tar

为什么有的种类是…/x-… 这种形式?
Internet中有一个专门组织(IANA)来确认标准的MIME类型,但Internet发展的太快,很多应用程序等不及IANA来确认他们使用的MIME类型为标准类型。因此他们使用在类别中以x-开头的方法标识这个类别还没有成为标准,例如:x-gzip,x-tar等。事实上这些类型运用的很广泛,已经成为了事实标准。只要客户机和服务器共同承认这个MIME类型,即使它是不标准的类型也没有关系,客户程序就能根据MIME类型,采用具体的处理手段来处理数据。

参考资料
1 百度百科
http://baike.baidu.com/link?url=B0RHRoKg2MhGkWP44tC7xtpwJV0YUYDmjT7hkRf5mpTEqWT7ahxyfYdFzXEG92pYrWIQj2VW06v3FluOsI9Vpq#3

0 0
原创粉丝点击