社区
ASP
帖子详情
请教:HTTP头的问题
leetow2003
2008-11-05 12:07:00
如何设置HTTP头?是在html标志中设置吗?怎么写?
...全文
108
5
打赏
收藏
请教:HTTP头的问题
如何设置HTTP头?是在html标志中设置吗?怎么写?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Even713
2008-11-05
打赏
举报
回复
<head>
<meta http-equiv="Content-Type" content="text/html;">
</head>
1 Content-Type
Content-Type是返回消息中非常重要的内容,它标识出这个返回内容的类型,其值为“主类型/子类型”的格式,例如最常见的就是 text/html,它的意思是说返回的内容是文本类型,这个文本又是HTML格式的。原则上浏览器会根据Content-Type来决定如何显示返回的 消息体内容。常见的内容类型有:
text/html HTML文本
image/jpeg JPG图片
image/gif GIF图片
application/xml XML文档
audio/x-mpegurl MP3文件列表,如果安装了Winamp,则可以直接把它当面M3U文件来打开
更多的内容类型可以在注册表“HKCR\MIME\Database\Content Type”下看到
对于IE6浏览器来说,如果Content-Type中的类型和实际的消息体类型不一致,那么它会根据内容中的类型来分析实际应该是什么类型,对于JPG、GIF等常用图片格式都可以正确的识别出来,而不管Content-Type中写的是什么。
如 果Content-Type中指定的是浏览器可以直接打开的类型,那么浏览器就会直接打开其内容显示出来,如果是被关联到其它应用程序的类型,这时就要查 找注册表中关于这种类型的注册情况,如果是允许直接打开而不需要询问的,就会直接调出这个关联的应用程序来打开这个文件,但如果是不允许直接打开的,就会 询问是否打开。对于没有关联到任何应用程序的类型,IE浏览器不知道它该如何打开,此时IE6就会把它当成XML来尝试打开。
2 Content-Disposition
如果用AddHeader的方法在HTTP消息头中加入Content-Disposition段,并指定其值为“attachment”,那 么无论这个文件是何类型,浏览器都会提示我们下载此文件,因为此时它认为后面的消息体是一个“附件”,不需要由浏览器来处理了。例如,在ASP.Net中 写入如下语句:
Response.AddHeader("Content-Disposition: attachment");
请求此页面是得到的结果如:
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.1
Date: Thu, 23 Mar 2006 07:54:53 GMT
Content-Disposition: attachment
Cache-Control: private
Content-Type: text/html; charset=utf-8
……
也 就是说,通过AddHeader函数可以为HTTP消息头加入我们自定义的内容。使用这种方法可以强制让浏览器提示下载文件,即使这个文件是我们已知的类 型,基于是HTML网页。如果想要让用户下载时提示一个默认的文件名,只需要在前面一句话后加上“filename=文件名”即可。例如:
Response.AddHeader("Content-Disposition: attachment; filename=mypage.htm");
3 Content-Type与Content-Disposition
如果把Content-Type和Content-Disposition结合在一起使用会怎么样呢?
打开一个网页时,浏览器会首先看是否有Content-Disposition: attachment这一项,如果有,无论Content-Type的值是什么,都会提示文件下载。
如 果指定了filename,就会提示默认的文件名为此文件名。注意到在IE6中除了“保存”按扭外还有“打开”按扭,此时打开文件的类型是由在 filename中指定的文件扩展名决定的,例如让filename=mypic.jpg,浏览器就会查找默认的图片查看器来打开此文件。
如果没 有指定filename,那么浏览器就根据Content-Type中的类型来决定文件的类型,例如Content-Type类型为image/gif, 那么就会去查找默认的看GIF图片的工具,并且设置此文件的名字为所请求的网页的主名(不带扩展名)加上对应于此文件类弄扩展名,例如请求的 mypage.aspx,就会自动变成mypage.gif。如果并没有指定Content-Type值,那么就默认它为“text/html”,并且保 存的文件名就是所请求的网页文件名。
但如果没有指定Content-Disposition,那么就和前面关于Content-Type中所讨论的情况是一样的了。
4 Cache
返回消息中的Cache用于指定网页缓存。我们经常可以看到这样的情况,打开一个网页时速度不快,但再次打开时就会快很多,原因是浏览器已经对此页 面进行了缓存,那么在同一浏览器窗口中再次打开此页时不会重新从服务器端获取。网页的缓存是由HTTP消息头中的“Cache-control”来控制 的,常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。其作用根据不同的重新浏 览方式分为以下几种情况:
(1) 打开新窗口
如果指定cache-control的值为private、no-cache、must-revalidate,那么打开新窗口访问时都会重新访问服务器。而如果指定了max-age值,那么在此值内的时间里就不会重新访问服务器,例如:
Cache-control: max-age=5
表示当访问此网页后的5秒内再次访问不会去服务器
(2) 在地址栏回车
如果值为private或must-revalidate(和网上说的不一样),则只有第一次访问时会访问服务器,以后就不再访问。如果值为no-cache,那么每次都会访问。如果值为max-age,则在过期之前不会重复访问。
(3) 按后退按扭
如果值为private、must-revalidate、max-age,则不会重访问,而如果为no-cache,则每次都重复访问
(4) 按刷新按扭
无论为何值,都会重复访问
当指定Cache-control值为“no-cache”时,访问此页面不会在Internet临时文章夹留下页面备份。
另外,通过指定“Expires”值也会影响到缓存。例如,指定Expires值为一个早已过去的时间,那么访问此网时若重复在地址栏按回车,那么每次都会重复访问:
Expires: Fri, 31 Dec 1999 16:00:00 GMT
在ASP中,可以通过Response对象的Expires、ExpiresAbsolute属性控制Expires值;通过Response对象的CacheControl属性控制Cache-control的值,例如:
Response.ExpiresAbsolute = #2000-1-1# ' 指定绝对的过期时间,这个时间用的是服务器当地时间,会被自动转换为GMT时间
Response.Expires = 20 ' 指定相对的过期时间,以分钟为单位,表示从当前时间起过多少分钟过期。
Response.CacheControl = "no-cache"
dys988
2008-11-05
打赏
举报
回复
在<head>...</head>之间写入吧
leetow2003
2008-11-05
打赏
举报
回复
我做了个ASP,可以进行数据库的输入输出。
我想问:
是否可以通过在hml的头中设置,可是指定汉字的编码,也就是说能让我按照什么汉字编码(如:GBK,Unicode,UTF-8)把汉字存入Acess中,也可以
读出Access中的字段时,可以按自己的要求把汉字转换成某个编码呢?
cceon
2008-11-05
打赏
举报
回复
可能楼主说的是HTTP协议中的吧,不是页面里的HTTP头吧。
这种东西好像很高级哦。我没有弄过,估计要把TCP/IP协议好好看看才能回答这个问题。
gs6fox
2008-11-05
打赏
举报
回复
mark
linux vlan添加到网桥,
请教
:关于Linux网桥和VLAN的
问题
请教
:关于Linux网桥和VLAN的
问题
(2012-06-07 03:08:22)标签:网桥的linux杂谈
请教
:关于Linux网桥和VLAN的
问题
有个关于Linux网桥和VLAN的
问题
,
请教
各位。网络环境:1、两台TP-LINK的交换机,支持Tag VLAN。暂称为...
高手过招:
请教
:变量到底是在编译的时候初始化的,还是在运行的时候初始化的?
请教
:变量到底是在编译的时候初始化的,还是在运行的时候初始化的? [
问题
点数:40分,结帖人learnc2015]
http
s://bbs.csdn.net/topics/391832733 收藏帖子 回复 learnc2015 结帖率 62.5% 变量到底是在...
请教
:关于无光软笔记本电脑操作系统安装
问题
我最近碰到了一个非常棘手的
问题
,请各位高手不吝赐教: 我的笔记本是无光软的超轻薄型的,有外置光驱但不能引导系统,原先是WindowsME的系统,现在想换成2000,没想到
问题
就来了。 我使用硬盘转换卡把笔记本硬盘...
HTTP
请求
头
之User-Agent
HTTP
请求
头
之User-Agent 前言 之前学习北京理工嵩天老师的《Python网络爬虫与信息提取》时,爬取亚马逊的一款图书的详细信息时出现以下错误: ![Upload 亚马逊爬虫.PNG failed. Please try again.] 查看请求信息,...
请教
:我用的jbuilder,struts架构,在action中的session赋中文值以后,回到jsp中,从session中取出的值为乱码,如何解决?
转载网上找到的文章: 现在有很多人都碰到过乱码
问题
,不停的发贴问,那么究竟有没有一种完全的解决方案... Java中文
问题
一直困扰着很多初学者,如果了解了Java系统的中文
问题
原理,我们就可以对中文
问题
能够采取根
ASP
28,391
社区成员
357,059
社区内容
发帖
与我相关
我的任务
ASP
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
复制链接
扫一扫
分享
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章