`
IT_way
  • 浏览: 68726 次
  • 性别: 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]
分享到:
评论

相关推荐

    Content-Type详解

    Content-Type是HTTP协议中一个非常重要的头域,用于指示Web服务器发送的响应正文的格式和类型。 Content-Type头域的格式为:Content-Type: [type]/[subtype]; parameter。其中,type表示顶级媒体类型,subtype表示...

    Content-Type

    Content-Type 是 HTTP 协议中的一个 header 字段,用于指示返回消息的 MIME 类型。它是服务器响应消息中非常重要的内容,表明后面的文档属于什么 MIME 类型。Content-Type 的格式为:Content-Type: [type]/[subtype]...

    常用Content-type

    在给定的部分内容中,列举了多种常见的MIME类型(Multipurpose Internet Mail Extensions),这是`Content-type`对应的值。MIME类型是一种标准,用于标识文件的类型和编码。以下是一些常见MIME类型的说明: - `...

    php中header设置常见文件类型的content-type

    Content-Type用于指示服务器响应的内容类型,告诉浏览器或其他客户端应该以何种方式处理返回的数据。通过正确的设置Content-Type,可以确保Web页面正确显示,文件正确下载等。本文将详细介绍PHP中如何使用header函数...

    Content-Type的一张表

    这个文件很可能包含了详细的`Content-Type`列表,包括各种常见的类型以及可能不太常见的类型,对于开发者来说是非常有用的参考资料。 通过学习这张表,开发者可以更好地理解如何设置HTTP响应或请求中的`Content-...

    Go-依赖Content-Typeheader自动地解析request.Body

    理解如何有效地解析这个`Body`,尤其是依赖...通过正确处理不同类型的`Content-Type`,我们可以确保服务器能够准确地解析和处理来自客户端的数据。在开发过程中,注意异常处理和数据验证,以提高应用的健壮性和安全性。

    sense_0.9.zip解决Content-Type问题后版本

    在"解决Content-Type问题后版本"中,开发团队修复了之前版本中可能出现的Content-Type设置不正确或者不支持某些特定类型的问题,从而确保数据传输的准确性和兼容性。 【知识点详细说明】 1. **Elasticsearch**: ...

    php header Content-Type类型小结

    在Web开发中,正确设置`Content-Type`头是至关重要的,因为它定义了数据的MIME类型,即告诉浏览器如何处理返回的数据。MIME类型是一个标准格式,用于表示不同类型的文件或内容。 `Content-Type`头的类型有很多,...

    HTTP Content-type对照表.md

    HTTP Content-type对照表:文档中列举了开发中绝大部分的ContentType类型信息

    详解Http请求中Content-Type讲解以及在Spring MVC中的应用

    常见的Content-Type类型包括: 1. `text/html`:HTML格式的文本。 2. `text/plain`:纯文本格式。 3. `text/xml`:XML格式的文本。 4. 图片类型,如`image/gif`、`image/jpeg`和`image/png`。 5. `application/*`...

    ContentType大全

    `ContentType`全称为`Content-Type`,它是HTTP响应头中的一个字段,用于告诉浏览器或接收方数据的MIME类型(Multipurpose Internet Mail Extensions)。MIME类型是一种标准,用于标识互联网上的资源类型,如文本、...

    content-type:创建和解析HTTP Content-Type标头

    内容类型 根据RFC 7231创建和解析HTTP Content-Type标头 安装 $ npm install content-type API var contentType = require ( 'content-type' ) contentType.parse(字符串) ... type :媒体类型(类型和

    前端开源库-content-type-mime

    在IT行业中,尤其是在前端开发领域,理解并正确使用Content-Type(MIME类型)至关重要。Content-Type是一种标准,用于标识互联网上资源的类型和格式。它不仅对于浏览器如何处理和显示内容有着直接影响,也是服务器和...

    content-type:解析 `Content-Type` 标头

    去取内容类型 解析Content-Type标头并向请求和响应对象添加访问器安装 npm install --save go-fetch-content-type用法 var HttpClient = require('go-fetch');var contentType = require('go-fetch-content-type');...

    cache-content-type:给定MIME类型或扩展名,创建完整的Content-Type标头并缓存结果

    缓存内容类型 与的contentType方法相同,但是缓存了结果。 安装 npm i cache-content-type 用法 const getType = require ( 'cache-content-type' ) ; const contentType = getType ( 'html' ) ; assert ( ...

    Spring Boot 返回Content-Type解决方案

    前端同学需要Content-Type 字段返回,根据文件的类型不同返回不同的类型;还有就是直接打开一个下载链接,对于Chrome这样的浏览器其实支持自适应预览的效果。https://tool.oschina.net/commons/ 这里的链接中有好多...

    HTTP_Response消息Content-Type规范

    本篇文章将深入探讨`Content-Type`的规范及其在不同数据类型中的应用。 `Content-Type`由两部分组成:`type`和`subtype`,例如`text/html`。`type`通常表示数据的大类别,而`subtype`则更具体地描述了数据的格式。...

    文件下载及web文件的contentType类型大全

    本文将详细介绍如何实现文件下载功能以及不同文件类型的`Content-Type`设置。 #### 一、文件下载的基本实现 文件下载的核心在于通过HTTP响应将文件内容发送给客户端,并且通过设置特定的HTTP头部来告诉浏览器应该...

    VUE项目axios请求头更改Content-Type操作

    Content-Type表明了请求数据的MIME类型(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展类型),这对于服务器正确处理请求内容至关重要。以下是一些与该话题相关的知识点: 1. axios的基本使用:...

    http中content-type头值-1

    下面将详细阐述`Content-Type`头值的常见类型及其用途。 1. **文本类型**: - `text/plain`: 这是最基础的类型,表示纯文本,如`.txt`文件。 - `text/html`: 表示HTML文档,是网页的主要格式。 - `text/css`: ...

Global site tag (gtag.js) - Google Analytics