Content-type的说明即HTTP请求头的类型整理
要学习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。对于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等原来在网页中打开的文件都可以正常实现下载。
'hqx' =>
'application/mac-binhex40',
'cpt' =>
'application/mac-compactPRo',
'doc' =>
'application/msword',
'bin' =>
'application/octet-stream',
'dms' =>
'application/octet-stream',
'lha' =>
'application/octet-stream',
'lzh' =>
'application/octet-stream',
'exe' =>
'application/octet-stream',
'class' =>
'application/octet-stream',
'so' =>
'application/octet-stream',
'dll' =>
'application/octet-stream',
'oda' =>
'application/oda',
'pdf' =>
'application/pdf',
'ai' =>
'application/postscript',
'eps' =>
'application/postscript',
'ps' =>
'application/postscript',
'smi' =>
'application/smil',
'smil' =>
'application/smil',
'mif' =>
'application/vnd.mif',
'xls' =>
'application/vnd.ms-excel',
'ppt' =>
'application/vnd.ms-powerpoint',
'wbxml' =>
'application/vnd.wap.wbxml',
'wmlc' =>
'application/vnd.wap.wmlc',
'wmlsc' =>
'application/vnd.wap.wmlscriptc',
'bcpio' =>
'application/x-bcpio',
'vcd' =>
'application/x-cdlink',
'pgn' =>
'application/x-chess-pgn',
'cpio' =>
'application/x-cpio',
'csh' =>
'application/x-csh',
'dcr' =>
'application/x-director',
'dir' =>
'application/x-director',
'dxr' =>
'application/x-director',
'dvi' =>
'application/x-dvi',
'spl' =>
'application/x-Futuresplash',
'gtar' =>
'application/x-gtar',
'hdf' =>
'application/x-hdf',
'js' =>
'application/x-javascript',
'skp' =>
'application/x-koan',
'skd' =>
'application/x-koan',
'skt' =>
'application/x-koan',
'skm' =>
'application/x-koan',
'latex' =>
'application/x-latex',
'nc' =>
'application/x-netcdf',
'cdf' =>
'application/x-netcdf',
'sh' =>
'application/x-sh',
'shar' =>
'application/x-shar',
'swf' =>
'application/x-shockwave-flash',
'sit' =>
'application/x-stuffit',
'sv4cpio' =>
'application/x-sv4cpio',
'sv4crc' =>
'application/x-sv4crc',
'tar' =>
'application/x-tar',
'tcl' =>
'application/x-tcl',
'tex' =>
'application/x-tex',
'texinfo' =>
'application/x-texinfo',
'texi' =>
'application/x-texinfo',
't' =>
'application/x-troff',
'tr' =>
'application/x-troff',
'roff' =>
'application/x-troff',
'man' =>
'application/x-troff-man',
'me' =>
'application/x-troff-me',
'ms' =>
'application/x-troff-ms',
'ustar' =>
'application/x-ustar',
'src' =>
'application/x-wais-source',
'xhtml' =>
'application/xhtml+xml',
'xht' =>
'application/xhtml+xml',
'zip' =>
'application/zip',
'au' =>
'audio/basic',
'snd' =>
'audio/basic',
'mid' =>
'audio/midi',
'midi' =>
'audio/midi',
'kar' =>
'audio/midi',
'mpga' =>
'audio/mpeg',
'mp2' =>
'audio/mpeg',
'mP3' =>
'audio/mpeg',
'aif' =>
'audio/x-aiff',
'aiff' =>
'audio/x-aiff',
'aifc' =>
'audio/x-aiff',
'm3u' =>
'audio/x-mpegurl',
'ram' =>
'audio/x-pn-realaudio',
'rm' =>
'audio/x-pn-realaudio',
'rpm' =>
'audio/x-pn-realaudio-plugin',
'ra' =>
'audio/x-realaudio',
'wav' =>
'audio/x-wav',
'pdb' =>
'chemical/x-pdb',
'xyz' =>
'chemical/x-xyz',
'bmp' =>
'image/bmp',
'gif' =>
'image/gif',
'ief' =>
'image/ief',
'jpeg' =>
'image/jpeg',
'jpg' =>
'image/jpeg',
'jpe' =>
'image/jpeg',
'png' =>
'image/png',
'tiff' =>
'image/tiff',
'tif' =>
'image/tiff',
'djvu' =>
'image/vnd.djvu',
'djv' =>
'image/vnd.djvu',
'wbmp' =>
'image/vnd.wap.wbmp',
'ras' =>
'image/x-cmu-raster',
'pnm' =>
'image/x-portable-anymap',
'pbm' =>
'image/x-portable-bitmap',
'pgm' =>
'image/x-portable-graymap',
'ppm' =>
'image/x-portable-pixmap',
'rgb' =>
'image/x-rgb',
'xbm' =>
'image/x-xbitmap',
'xpm' =>
'image/x-xpixmap',
'xwd' =>
'image/x-xwindowdump',
'igs' =>
'model/iges',
'iges' =>
'model/iges',
'msh' =>
'model/mesh',
'mesh' =>
'model/mesh',
'silo' =>
'model/mesh',
'wrl' =>
'model/vrml',
'vrml' =>
'model/vrml',
'css' =>
'text/css',
'html' =>
'text/html',
'htm' =>
'text/html',
'asc' =>
'text/plain',
'txt' =>
'text/plain',
'rtx' =>
'text/richtext',
'rtf' =>
'text/rtf',
'sgml' =>
'text/sgml',
'sgm' =>
'text/sgml',
'tsv' =>
'text/tab-separated-values',
'wml' =>
'text/vnd.wap.wml',
'wmls' =>
'text/vnd.wap.wmlscript',
'etx' =>
'text/x-setext',
'xsl' =>
'text/xml',
'xml' =>
'text/xml',
'mpeg' =>
'video/mpeg',
'mpg' =>
'video/mpeg',
'mpe' =>
'video/mpeg',
'qt' =>
'video/QuickTime',
'mov' =>
'video/quicktime',
'mxu' =>
'video/vnd.mpegurl',
'avi' =>
'video/x-msvideo',
'movie' =>
'video/x-sgi-movie',
'ice' =>
'x-conference/x-cooltalk',
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Content-type的说明即HTTP请求头的类型整理
本文地址: https://pptw.com/jishu/587866.html