在ASP中操作HTTP报头方法分析

dylbc

dylbc

2016-01-29 18:57

在ASP中操作HTTP报头方法分析,在ASP中操作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>

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/asp/)

  通过单击浏览器上的“Back”和“Forward”,能看到代码是自动执行还是使用缓存的副本。

  2) Response.Expires和Response.ExpiresAbsolute属性

  控制缓存的网页存放时间的两个属性为Response对象的Expires和ExpriesAbsolute属性。Response.Expires定义了风页在从缓存区被丢弃前应保持有效的时间长度,以创建以来的分钟数形式表示。ExpiresAbsolute属性为到期时间设置了一个绝对的日期和时间。

  我们提供一个命名为addheaders_form.asp的例子网页,用于演示如何使用这些属性。在“Response Object”主页中单击对这两种属性的链接。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/asp/)

  在得到的页面中,可加入自己定制的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(“expiresabs_value”)
If Request.Form(“lastmod”) = “on” Then _
 Response.AddHeader “LAST-MODIFIED”, Cstr(Request.Form(“lastmod_value”))
If Request.Form(“pragma”) = “on” Then _
 Response.AddHeader “PRAGMA”, CStr(Request.Form(“pragma_value”))
If Request.Form(“refresh”) = “on” Then _
 Response.AddHeader “REFRESH”, CStr(Request.Form(“refresh_value”))
If Request.Form(“addheader”) = “on” And Len(Request.Form(“addheader_name”)) Then _
 Response.AddHeader CStr(Request.Form(“addheader_name”)), _
  CStr(Request.Form(“addheader_value”))
If Request.Form(

展开更多 50%)
分享

猜你喜欢

在ASP中操作HTTP报头方法分析

ASP
在ASP中操作HTTP报头方法分析

在ASP中操作数据库的方法

ASP
在ASP中操作数据库的方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

在jsp中作HTTP认证的方法

Java JAVA基础
在jsp中作HTTP认证的方法

在VC中WININET如何使用HTTP的POST方法

编程语言 网络编程
在VC中WININET如何使用HTTP的POST方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

使用ASP建立Http组件

ASP
使用ASP建立Http组件

在ASP中调用存储过程的几种方法

Web开发
在ASP中调用存储过程的几种方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

利用JSP的思想来做ASP

利用JSP的思想来做ASP

ASP防SQL注入攻击程序

ASP防SQL注入攻击程序
下拉加载更多内容 ↓