读书人

content-type门类

发布时间: 2013-02-24 17:58:56 作者: rapoo

content-type类型
转载 http://blog.csdn.net/shamoqiuyin/article/details/6799722
要学习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 。

常用类型:

Mime Types By File Extension

Extension Type/sub-type


application/octet-stream
323 text/h323

acx application/internet-property-stream


ai application/postscript


aif audio/x-aiff


aifc audio/x-aiff


aiff audio/x-aiff


asf video/x-ms-asf


asr video/x-ms-asf


asx video/x-ms-asf


au audio/basic


avi video/x-msvideo


axs application/olescript


bas text/plain


bcpio application/x-bcpio


bin application/octet-stream


bmp image/bmp


c text/plain


cat application/vnd.ms-pkiseccat


cdf application/x-cdf


cer application/x-x509-ca-cert


class application/octet-stream


clp application/x-msclip


cmx image/x-cmx


cod image/cis-cod


cpio application/x-cpio


crd application/x-mscardfile


crl application/pkix-crl


crt application/x-x509-ca-cert


csh application/x-csh


css text/css


dcr application/x-director


der application/x-x509-ca-cert


dir application/x-director


dll application/x-msdownload


dms application/octet-stream


doc application/msword

dot application/msword


dvi application/x-dvi


dxr application/x-director


eps application/postscript


etx text/x-setext


evy application/envoy


exe application/octet-stream


fif application/fractals


flr x-world/x-vrml


gif image/gif


gtar application/x-gtar


gz application/x-gzip


h text/plain


hdf application/x-hdf


hlp application/winhlp


hqx application/mac-binhex40


hta application/hta


htc text/x-component


htm text/html


html text/html


htt text/webviewhtml


ico image/x-icon


ief image/ief


iii application/x-iphone


ins application/x-internet-signup


isp application/x-internet-signup


jfif image/pipeg


jpe image/jpeg


jpeg image/jpeg


jpg image/jpeg


js application/x-javascript


latex application/x-latex


lha application/octet-stream


lsf video/x-la-asf


lsx video/x-la-asf


lzh application/octet-stream


m13 application/x-msmediaview


m14 application/x-msmediaview


m3u audio/x-mpegurl


man application/x-troff-man


mdb application/x-msaccess


me
application/x-troff-me

mht message/rfc822


mhtml message/rfc822


mid audio/mid


mny application/x-msmoney


mov video/quicktime


movie video/x-sgi-movie


mp2 video/mpeg


mp3 audio/mpeg


mpa video/mpeg


mpe video/mpeg


mpeg video/mpeg


mpg video/mpeg


mpp application/vnd.ms-project


mpv2 video/mpeg


ms application/x-troff-ms


mvb application/x-msmediaview


nws
message/rfc822

oda application/oda


p10 application/pkcs10


p12 application/x-pkcs12


p7b application/x-pkcs7-certificates


p7c application/x-pkcs7-mime


p7m application/x-pkcs7-signature

p7r
application/x-pkcs7-certreqresp

p7s application/x-pkcs7-signature


pbm image/x-portable-bitmap


pdf application/x-pkcs12


pfx application/x-pkcs12


pgm image/x-portable-graymap


pko application/ynd.ms-pkipko


pma application/x-perfmon


pmc application/x-perfmon


pml application/x-perfmon


pmr application/x-perfmon


pmw application/x-perfmon


pnm image/x-portable-anymap


pot, application/vnd.ms-powerpoint


ppm image/x-portable-pixmap


pps application/vnd.ms-powerpoint


ppt application/vnd.ms-powerpoint


prf application/pics-rules


ps application/postscript


pub application/x-mspublisher


qt video/quicktime


ra audio/x-pn-realaudio


ram audio/x-pn-realaudio


ras image/x-cmu-raster


rgb image/x-rgb


rmi audio/mid


roff application/x-troff


rtf application/rtf


rtx text/richtext


scd application/x-msschedule


sct text/scriptlet


setpay application/set-payment-initiation


setreg application/set-registration-initiation


sh application/x-sh


shar application/x-shar


sit application/x-stuffit


snd audio/basic


spc application/x-pkcs7-certificates


spl application/futuresplash


src application/x-wais-source


sst application/vnd.ms-pkicertstore


stl application/vnd.ms-pkistl


stm text/html


svg image/svg+xml


sv4cpio application/x-sv4cpio


sv4crc application/x-sv4crc


swf application/x-shockwave-flash


t application/x-troff


tar application/x-tar


tcl application/x-tcl


tex application/x-tex


texi application/x-texinfo


texinfo application/x-texinfo


tgz application/x-compressed


tif image/tiff


tiff image/tiff


tr application/x-troff


trm application/x-msterminal


tsv text/tab-separated-values


txt text/plain


uls text/iuls


ustar application/x-ustar


vcf text/x-vcard


vrml x-world/x-vrml


wav audio/x-wav


wcm application/vnd.ms-works


wdb application/vnd.ms-works


wks application/vnd.ms-works


wmf application/x-msmetafile


wps application/vnd.ms-works


wri application/x-mswrite


wrl x-world/x-vrml


wrz x-world/x-vrml


xaf x-world/x-vrml


xbm image/x-xbitmap


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-excel


xof x-world/x-vrml


xpm image/x-xpixmap


xwd image/x-xwindowdump


z application/x-compress


zip application/zip




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

如果要想实现文件下载,可以在http的头中加入:

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

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



[/align][align=center][/align][align=center]

读书人网 >互联网

热点推荐