ASP内置对象Request和Response详解

2016-02-19 17:09 26 1 收藏

下面是个超简单的ASP内置对象Request和Response详解教程,图老师小编精心挑选推荐,大家行行好,多给几个赞吧,小编吐血跪求~

【 tulaoshi.com - Web开发 】

  Request和Response这两个对象是ASP所提供的内置对象中最常用的两个。在浏览器(或其他用户代理)和Web服务器之间,请求与响应中发生的信息交流可以通过ASP中的两个内置对象来进行访问和管理,这两个对象称为Request和Response对象。

  在ASP页中所要进行的工作几乎都要访问这两个对象,使用这两个对象的方式将影响页面的效率及可靠性。当然,它们的主要用途是访问用户发回到服务器的值,即从HTML页的<FORM>段获得或附在URL后面作为查询字符串,并创建合适的输出返回给用户,且它们可以共享很多相同的因素。例如两个对象都可以使用存储在客户端计算机上的cookie。

  因此,我们把内容分成两个独立的部分(每个对象一部分),并且首先从客户端与服务器这间的信息交流入手,然后再研究每一个对象。

  研究的内容是:

   客户端与服务器如何交流以传递Web或其他资源。

   Request和Response对象的细节,以及它们之间的共同点。

   如何通过一个窗体和查询字符串访问相应的值。

   如何读入或创建cookie并存放在客户端的计算机上。

   服务器的变量是什么?如何访问和修改HTTP报头。

   说明其他相关条目的变化,如客户的证书使用。

  客户端和服务器的交流

  为节省篇幅,后面的内容中使用浏览器(browser)一词。但需要记住的是,能够访问Web页面的应用程序绝不仅只有浏览器,有许多特殊的应用程序从站点上下载网页,如为那些视力有缺陷用户设计的特殊的客户端程序或者是用通常的浏览器有其他困难的人。最显而易见的例子是搜索引擎用来访问Web上的站点的robot。全面考虑这些因素,包括普通的Web浏览器,准确的词汇应该是用户代理(user agent)。

  页面请求的对话

  当一个浏览器向Web站点提出页面请求时,显然必须告诉服务器,其请求的是哪一个页面。首先要做的是通过域名与服务器建立连接,然后提供所请求的页面的全路径和名称。为什么要全路径和名称?Web是一个无国界的环境,所以必须创造一个会话标识每个客户(将在以后介绍ASP如何做到这点)。

  这就意味着每当服务器完成向客户发送页面后,服务器就彻底忘记了这个客户。因此,当客户请求下一个页面时,与一个新的访问者是完全相同的。服务器无法记住这个客户,相应的,也就无法判断它们上次请求的页面是哪一个。因为,不能使用相对路径来提供一个页面,即使页面包含一个相对的链接也不行,例如:

  

<A HREF=Download.asp>Next Page</A>

  浏览器将自动建立完整的新页面的URL,方法是使用当前页的域和路径;或使用页面<HEAD>段中的<BASE>元素,告诉浏览器一个页面中所有链接的其URL是什么。例如:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  <BASE HERF=http://www.wrox.com/Store>

  当把鼠标指向一个页面的链接时,可在浏览器的状态栏中看到。当前页面的路径和当前域名或基域名或基路径已经与请求的页面名结合在一起了。

  1、客户请求的细节

  所请求页面的全路径和名称的组合是浏览器请求页面时发住服务器的唯一住处浏览器的请求也能包含浏览器宿主的住处和客户端运行的操作系统。实际的信息内容将随着浏览器的不同而有相应的变化,只有很少一部分能够由其他的应用程序如搜索引擎robot提供。为了更清楚地了解该信息,下面是从IE 5.0发出的一个对页面http://www.wrox.com/Store/

  Download.asp的请求信息:

  

7/8/99 10:27:16 Sent GET /Store/Download.asp HTTP/1.1Accept: application/msword, application/vnd.ms-execl, application/vnd.ms-powerpoint, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-comet, */*Accept-Language: en-usEncoding: gzip, deflateReferer: http://ww.wrox.com/main_menu.aspCookie: VisitCount=2&LASTDATE=6%2F4%2F99+10%3A10%3A13+AMUser-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98)Host: 212.250.238.67Connection: Keep-Alive

  从中可以看出,这些信息中有关于用户代理和用户连接的细节(如缺省的语言),也有能够接受的文件或应用程序的类型列表,这些都是MIME类型的,在后面将会见到更多。浏览器能够接受几种图像文件及多种Microsoft Office文件类型。标准的文件类型,如tesx/html和text/text没有列在其中。文件列表中*/*表示可向浏览器发回任何类型的文件,由浏览器解释或通过一个插件(plug-in)应用程序来进行解释。

  cookie: 条目包含的cookie存放在客户端的计算机上,并仅对该域有效。假如请求是点击链接的结果,而不是在浏览器的地址栏直接输入URL,则Referer:条目被显示出来,它包含了链接页面的完整的URL。

  Host:条目包含客户计算机的IP地址或名称。然而,这还不足以准确辨别客户机。因为它们通过ISP连接时,IP地址是动态分配的,或者通过一个代理服务器连接时,IP地址是代理机的而不是实际的客户机的。

  2、服务器响应的细节信息

  为响应上述的请求,并对匿名的浏览器(即用户不必提供用户名和访问口令)提供请求的页面,下面的内容是从服务器发往客户机的:

  

7/8/99 10:27:16 Received HTTP/1.1 200 OKServer: Microsoft-IIS/5.0Connection: Keep-AliveDate: Thu, 8 Jul 1999 10:27:16 GMTContent-Type: text/htmlAccept-Ranges: bytesContent-Length: 2946Last-Modified: Thu, 8 Jul 1999 10:27:16 GMTCookie: VisitCount=3&LASTDATE=7%2F8%2F99+10%3A27%3A16+AM<HTML> rest of page </HTML>

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  可以看出服务器向客户端说明自己所用的软件及版本,第一行表明所使用的是HTTP协议,及返回码的状态。信息200 OK表示请求被接受并得到了满足。后面的信息是被返回的页面的细节,包括MIME类型(Content-Length:)、大小(字节)、最近更改时间,和返回客户端存储的cookie。响应中的其他信息是页面内容的信息流。

  在某些情况下,服务器响应一个请求后,不能返回一个页面,也许因为页面不存在,或都客户没有相应的权限来访问它。我们将在后面讨论安全问题。现在,对于请求页面不存在的情况(例如用户在浏览器的地址栏输入了错误的URL),返回的信息开头为:

  

7/8/99 14:27:16 Received HTTP/1.1 404 Not FoundServer: Microsoft-IIS/5.0

  这里,状态码和信息表明客户请求的页面无法找到。浏览器可使用这个信息向用户显示相应的信息(这种情况在IE 5.0中不显示服务器的响应信息,而显示相应帮助性的错误提示页面),也可显示服务器创建的缺省页面(依赖服务器的设置)。 Request和Response对象

  从ASP中能够应用客户请求和服务器响应的细节是通过ASP内置的Request和Response对象来实现的。

   Request对象:为脚本提供了当客户端请求一个页面或者传递一个窗体时,客户端提供的全部信息。这包括能指明浏览器和用户的HTTP变量,在这个域名下存放在浏览器中的cookie,任何作为查询字符串而附于URL后面的字符串或页面的<FORM>段中的HTML控件的值。也提供使用Secure Socket Layer(SSL)或其他加密通信协议的授权访问,及有助于对连接进行管理的属性。

   Response对象:用来访问服务器端所创建的并发回到客户端的响应信息。为脚本提供HTTP变量,指明服务器和服务器的功能和关于发回浏览器的内容的信息,以及任何将为这个域而存放在浏览器里新的cookie。它也提供了一系列的方法用来创建输出,例如无处不在的Response.Write方法。

  1、 Request对象成员的概述

  a) Request对象的集合

  Request对象提供了5个集合,可以用来访问客户端对Web服务器请求的各类信息,这些集合如下表:

  Request对象的集合及说明

  集合名称说明ClientCertificate 当客户端访问一个页面或其他资源时,用来向服务器表明身份的客户证书的所有字段或条目的数值集合,每个成员均是只读 Cookies根据用户的请求,用户系统发出的所有cookie的值的集合,这些cookie仅对相应的域有效,每个成员均为只读 Form METHOD的属性值为POST时,所有作为请求提交的<FORM>段中的HTML控件单元的值的集合,每个成员均为只读 QueryString 依附于用户请求的URL后面的名称/数值对或者作为请求提交的且METHOD属性为GET(或者省略其属性)的,或<FORM>中所有HTML控件单元的值,每个成员均为只读 ServerVariables随同客户端请求发出的HTTP报头值,以及Web服务器的几种环境变量的值的集合,每个成员均为只读

来源:http://www.tulaoshi.com/n/20160219/1614359.html

延伸阅读
标签: ASP
  Response对象常与其它的代码混合使用。下面这段代码演示了response.write与其 它代码混用的例 子。 <html<head <titleres5.asp</title </head<body bgcolor="#FFFFFF" <% ' The response object can be used to write text ' but sometimes some functions must be used to transform ' the text inst...
标签: ASP
  Response对象可以决定接下来向浏览器发送什么页面。这就是response.redirect的 功用所在。我们创建了一个代码文件script formjump.asp来演示这种方法 <html<head <TITLEFormJump.asp</TITLE </head<body bgcolor="#FFFFFF" <form action="FormJumpRespond.asp" method="get" <S...
标签: ASP
  响应对象 错误 'ASP 0156 : 80004005' 标题错 go.asp, 行10 HTTP标题已经写入到客户浏览器。任何HTTP标题的修改必须在写入页内容之前。 上面的错误信息是否曾困扰过你?(蜘蛛精:是否曾让你抓耳挠腮,彻夜难眠,最后 不得不以头撞墙而终?鄙人便饱受其害,至今仍为其消得人憔悴。) <%response.buffer=true% 上句须加在所有...
标签: Web开发
此功能已进入试用一周了,都没有问题,奇怪的是今天出现了问题?? 代码如下: AjaxRequestObj.createEqStatusParameter=function() {     if (eqStatusArray.length 1) {         return;     }     var paramNameArray = new Ar...
标签: Web开发
一、Cooies集合是Response对象和Request对象共有的一项经常用到的集合。用户通过HTTP标头访问一个主页时,每次都要重新开始。因此,如果要判断某个用户是否曾经进入本网站,那么就可以使用Cookies了。当用户第一次访问此网站时,可以利用Response对象的Cookies集合将数据存储到客户端计算机,当用户再一次访问此网站时,则可以利用Request...

经验教程

939

收藏

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