ASP 3.0高级编程(五)

2016-01-29 19:13 1 1 收藏

ASP 3.0高级编程(五),ASP 3.0高级编程(五)

【 tulaoshi.com - ASP 】

  1.    操作HTTP报头
我们已经在几处见到ASP如何创建或修改在响应页面请示时被发送到客户的HTTP报头。在Response对象中有几个属性和方法可帮助我们做到一点。下面是一些报头方法:
· 控制缓存和有效期。
· 创建状态和定制的HTTP报头。
· 指定MIME类型或内容类型。
· 添加PICS标签。
接下来将简要地研究每一个方面。可在“Response Object”主页(show_response.asp)上,单击相关属性名或方法名,
来检查我们所说的属性和方法,如下图所示:

1.     缓存和“到期”ASP网页
用户的浏览器以及他们和服务器这间的任一代理服务器,都可以缓存HTML和用ASP创建的网页。当用户随后请求页面时,浏览器就发送一个“最新修改”的请求到服务器(使用一个包含缓存版本的日期的HTTP_IF_MODIFIED_SINCE报头),询问网页是否已被修改。
若没有被修改,服务器应用状态码和消息“304 Not Modified”来响应,浏览器将使用缓存的内容而不会通过网络下载一个副本。若已经存在已修改的版本,它就会与“200 OK”状态码和消息一道被发送出去。
1)     Response.CacheContol属性
其他的一些因素也会影响这一处理过程。然而,任一被网页使用的网络路由内的代理服务器(一般位于客户机端),能被通过设置Response.CacheControl属性为Private来放弃缓存网页。在ASP 3.0中对ASP网页这是缺省的,不用设置。但在网页为个别访问者特别定制时尤其有用。这可以阻止别的在同一网络上的用户进入同一网页。当CacheControl的属性值被设定为Public时,允许服务器缓存网页。注意,一些代理服务器可能表现得不尽相同,或忽视或越过这个报头。
在IE4中,在代理服务器缓存可用时,有可能得到一个虚假的“This page has expired”消息。我们已提供了一个网页(expiretest_form.asp),可以通过自己的代理服务器在网络上做试验,来检查这一属性的影响。可以通过在“Response Object”主页中单击“Response. CacheControl”链接来显示这个网页。如下图所示:

这一页面提交到expiretest_result.asp网页时,能够设置Response.CacheControl属性,然后在网页中插入值和脚本被执
行的时间:
<%
If Request.Form(“public”) = “on” Then ‘Cache-Control check box was ticked
        Response.CacheControl = “Public”
    Else
        Response.CacheControl = “Private”
    End If
    %
    <HTML
    ...
    Cache-Control is: <B<% = Response.CacheControl %</B<P
    Value in text box is: <B<% Response.Write Request.Form(“textbox”) %
    <%
    Response.Write Right(“0” & Hour(Now),2) & “:” & Right(“0” & Minute(Now),_
            & 2) & “:” & Right(“0” & Second(Now),2)
    %</B
    通过单击浏览器上的“Back”和“Forward”,能看到代码是自动执行还是使用缓存的副本,如下图所示。结果随浏览器的不同而变化。

2)     Response.Expires和Response.ExpiresAbsolute属性
控制缓存的网页存放时间的两个属性为Response对象的Expires和ExpriesAbsolute属性。Response.Expires定义了风页在从缓存区被丢弃前应保持有效的时间长度,以创建以来的分钟数形式表示。ExpiresAbsolute属性为到期时间设置了一个绝对的日期和时间。
我们提供一个命名为addheaders_form.asp的例子网页,用于演示如何使用这些属性。在“Response Object”主页中单击对这两种属性的链接,如下图所示:

在这一页面中,可加入自己定制的HTTP报头,并可设置一些影响响应的HTTP报头的多种属性。在“提交查询内容”按钮上单击时,页面show_headers.asp在返回的数据流中添加所选的报头,然后显示用来完成此操作的代码,显示相应的执行时间,可用来检查页面是被缓存还是被再次执行,如下图所示:

show_headers.asp网页中的代码创建和添加HTTP报头,程序如下:
<%
‘Write HTTP headers before any other output
If Request.Form(“expires”) = “on” Then _
     Response.Expires = Request.Form(“expires_value”)
If Request.Form(“expiresabs”) = “on” Then _
     Response.ExpiresAbsolute = Request.Form(“exp

来源:https://www.tulaoshi.com/n/20160129/1508789.html

延伸阅读
标签: ASP
  4.3.5 获取Server对象的路径信息        在对存储在Web网站上的文件进行操作时,需要获得文件的实际的物理路径,而不是使用虚拟路径或URL,尽管在其他网页中能用它们正常地定位文件。下一章中有一个例子,它使用FileSystemObject对Web站点的InetPub\WWWRoot文件夹中的文件进行读写。当创建自己的定...
标签: ASP
  第5章 脚本运行期库对象        前面章节已经介绍了ASP如何使用在服务器上定义的对象的实例,充分利用所提供的方法和属性扩展ASP的性能。有一系列的对象可供使用,包括脚本对象和标准IIS/ASP安装的组件,以及自己创建的或者从其他供应商处购买的对象。也可以在互联网上各种网站免费下载对象,并在自...
标签: ASP
  (4)  删除虚拟应用程序 单击“Remove”按钮不会真正地删除Internet Services Manager中的该条目。而是把现有的虚拟应用程序转换为一个虚拟目录。这个目录有一个带有蓝色球的“文件夹”图标,该图标表示这并不是Web网站中一个真正的目录,而是对磁盘上另一个文件夹的一个重定向。对它进行的访问方式与创建它的虚拟应...
标签: ASP
  第四章      服务器进程和ASP Server对象 前面的章节已经研究了ASP的一些内置对象。重点介绍的对象有Request、Response、Session和Application对象。ASP中另一个比较主要的对象为Server对象。本章重点介绍这个对象的背景知识和使用方法。 Server对象在服务器端脚本中通过实例和使用其他外部对象和组件,...
标签: ASP
  ASP 3.0请求和响应的处理        这两个对象是ASP所提供的内置对象中最常用的两个。在浏览器(或其他用户代理)和Web服务器之间,请求与响应中发生的信息交流可以通过ASP中的两个内置对象来进行访问和管理,这两个对象称为Request和Response对象。        在AS...

经验教程

974

收藏

47
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部