转载 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是HTTP协议中一个非常重要的头域,用于指示Web服务器发送的响应正文的格式和类型。 Content-Type头域的格式为:Content-Type: [type]/[subtype]; parameter。其中,type表示顶级媒体类型,subtype表示...
Content-Type 是 HTTP 协议中的一个 header 字段,用于指示返回消息的 MIME 类型。它是服务器响应消息中非常重要的内容,表明后面的文档属于什么 MIME 类型。Content-Type 的格式为:Content-Type: [type]/[subtype]...
在给定的部分内容中,列举了多种常见的MIME类型(Multipurpose Internet Mail Extensions),这是`Content-type`对应的值。MIME类型是一种标准,用于标识文件的类型和编码。以下是一些常见MIME类型的说明: - `...
Content-Type用于指示服务器响应的内容类型,告诉浏览器或其他客户端应该以何种方式处理返回的数据。通过正确的设置Content-Type,可以确保Web页面正确显示,文件正确下载等。本文将详细介绍PHP中如何使用header函数...
这个文件很可能包含了详细的`Content-Type`列表,包括各种常见的类型以及可能不太常见的类型,对于开发者来说是非常有用的参考资料。 通过学习这张表,开发者可以更好地理解如何设置HTTP响应或请求中的`Content-...
理解如何有效地解析这个`Body`,尤其是依赖...通过正确处理不同类型的`Content-Type`,我们可以确保服务器能够准确地解析和处理来自客户端的数据。在开发过程中,注意异常处理和数据验证,以提高应用的健壮性和安全性。
在"解决Content-Type问题后版本"中,开发团队修复了之前版本中可能出现的Content-Type设置不正确或者不支持某些特定类型的问题,从而确保数据传输的准确性和兼容性。 【知识点详细说明】 1. **Elasticsearch**: ...
在Web开发中,正确设置`Content-Type`头是至关重要的,因为它定义了数据的MIME类型,即告诉浏览器如何处理返回的数据。MIME类型是一个标准格式,用于表示不同类型的文件或内容。 `Content-Type`头的类型有很多,...
HTTP Content-type对照表:文档中列举了开发中绝大部分的ContentType类型信息
常见的Content-Type类型包括: 1. `text/html`:HTML格式的文本。 2. `text/plain`:纯文本格式。 3. `text/xml`:XML格式的文本。 4. 图片类型,如`image/gif`、`image/jpeg`和`image/png`。 5. `application/*`...
`ContentType`全称为`Content-Type`,它是HTTP响应头中的一个字段,用于告诉浏览器或接收方数据的MIME类型(Multipurpose Internet Mail Extensions)。MIME类型是一种标准,用于标识互联网上的资源类型,如文本、...
内容类型 根据RFC 7231创建和解析HTTP Content-Type标头 安装 $ npm install content-type API var contentType = require ( 'content-type' ) contentType.parse(字符串) ... type :媒体类型(类型和
在IT行业中,尤其是在前端开发领域,理解并正确使用Content-Type(MIME类型)至关重要。Content-Type是一种标准,用于标识互联网上资源的类型和格式。它不仅对于浏览器如何处理和显示内容有着直接影响,也是服务器和...
去取内容类型 解析Content-Type标头并向请求和响应对象添加访问器安装 npm install --save go-fetch-content-type用法 var HttpClient = require('go-fetch');var contentType = require('go-fetch-content-type');...
缓存内容类型 与的contentType方法相同,但是缓存了结果。 安装 npm i cache-content-type 用法 const getType = require ( 'cache-content-type' ) ; const contentType = getType ( 'html' ) ; assert ( ...
前端同学需要Content-Type 字段返回,根据文件的类型不同返回不同的类型;还有就是直接打开一个下载链接,对于Chrome这样的浏览器其实支持自适应预览的效果。https://tool.oschina.net/commons/ 这里的链接中有好多...
本篇文章将深入探讨`Content-Type`的规范及其在不同数据类型中的应用。 `Content-Type`由两部分组成:`type`和`subtype`,例如`text/html`。`type`通常表示数据的大类别,而`subtype`则更具体地描述了数据的格式。...
本文将详细介绍如何实现文件下载功能以及不同文件类型的`Content-Type`设置。 #### 一、文件下载的基本实现 文件下载的核心在于通过HTTP响应将文件内容发送给客户端,并且通过设置特定的HTTP头部来告诉浏览器应该...
Content-Type表明了请求数据的MIME类型(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展类型),这对于服务器正确处理请求内容至关重要。以下是一些与该话题相关的知识点: 1. axios的基本使用:...
下面将详细阐述`Content-Type`头值的常见类型及其用途。 1. **文本类型**: - `text/plain`: 这是最基础的类型,表示纯文本,如`.txt`文件。 - `text/html`: 表示HTML文档,是网页的主要格式。 - `text/css`: ...