• 浅谈HTTP请求头content-type


        请求消息和响应消息都可以包含实体信息,实体信息一般由实体头域和实体组成。实体头域包含关于实体的原信息,实体头包括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" ", 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',

     
  • 相关阅读:
    cnpm与npm指定有什么区别?
    Node.js与VUE安装及环境配置之Windows篇
    kafka和rabbitmq对比
    .NET笔记题库(一)
    API网关的用处
    C#问答题与附解收集(三)
    Error Code: 1175
    有时间测试dism
    sublime 3103liense
    weblogic 安装和部署项目(原创)
  • 原文地址:https://www.cnblogs.com/handsomeBoys/p/4858955.html
Copyright © 2020-2023  润新知