`
IT_way
  • 浏览: 67502 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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]
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics