文档介绍:下载
第2章请求和响应的处理
上一章介绍了安装设置的一些基本问题和 A S P的使用,以及其所提供的内置对象。本章
将进一步研究两个最常用的对象。在浏览器(或其他用户代理)和We b服务器之间,请求与响应
中发生的信息交流可以通过 A S P中的两个内置对象来进行访问和管理,这两个对象称为
R e q u e s t和R e s p o n s e对象。
在A S P页中所要进行的工作几乎都要访问这两个对象,使用这两个对象的方式将影响页
面的效率及可靠性。当然,它们的主要用途是访问用户发回到服务器的值,即从 H T M L页的
< F O R M >段获得或附在 U R L后面作为查询字符串,并创建合适的输出返回给用户,且它们可
以共享很多相同的因素。例如两个对象都可以使用存储在客户端计算机上的 c o o k i e。
因此,我们把本章分成两个独立的部分(每个对象一部分),并且首先从客户端与服务器之
间的信息交流入手,然后再研究每一个对象。这将更有助于理解它们之间的关系及其重要性。
因此,本章研究的内容是:
•客户端与服务器如何交流以传递 We b页或其他资源。
• Request和R e s p o n s e对象的细节,以及它们之间的共同点。
•如何通过一个窗体和查询字符串访问相应的值。
•如何读入或创建c o o k i e并存放在客户端的计算机上。
•服务器的变量是什么?如何访问和修改 H T T P报头。
•说明其他相关条目的变化,如客户的证书使用。
首先看一下客户浏览器(或“用户代理”)和ASP 的We b服务器之间交流的情况。
客户端和服务器的交流
当浏览器或其他的用户代理访问 We b站点请求页面时,在客户服务器和 We b服务器之间就
产生了一个对话,我们将仔细研究这个问题,因为理解这个问题有助于掌握使用 A S P的
R e q u e s t和R e s p o n s e对象的基本知识,进而才能进一步掌握 A S P的更多知识。
为节省篇幅,在本章及本书后面的内容中使用“浏览器”(b r o w s e r ) 一词。但需要记
住的是,能够访问Web 页面的应用程序绝不仅只有浏览器,有许多特殊的应用程序从站
点上下载网页,如为那些视力有缺陷用户设计的特殊的客户端程序或者是用通常的浏
览器有其他困难的人。最显而易见的例子是搜索引擎用来访问Web 上的站点的ro b o t 。全
面考虑这些因素,包括普通的Web 浏览器,准确的词汇应该是用户代理(user agent)。
页面请求的对话
当一个浏览器向 We b站点提出页面请求时,显然必须告诉服务器,其请求的是哪一个页
面。首先要做的是通过域名与服务器建立连接,然后提供所请求页面的全路径和名称。为什
么要全路径和名称? We b是一个无国界的环境,所以必须创造一个会话标识每个客户(将在下
34计计ASP 3 高级编程
下载
一章介绍A S P如何做到这点)。
这就意味着每当服务器完成向客户发送页面后,服务器就彻底忘记了这个客户。因此,
当客户请求下一个页面时,与一个新的访问者是完全相同的。服务器无法记住这个客户,相
应的,也就无法判断它们上次请求的页面是哪一个。因此,不能使用相对路径来提供一个页
面,即使页面包含一个相对的链接也不行,例如:
浏览器将自动建立完整的新页面的 U R L,方法是使用当前页的域和路径;或使用页面
< H E A D >段中的< B A S E >元素,告诉浏览器一个页面中所有链接的基 U R L是什么。例如:
当把鼠标指向一个页面的链接时,可在浏览器
的状态栏中看到如图 2 - 1所示的情况。当前页面的路
径和当前域名或基域名已经与请求的页面名结合在
一起了。
1. 客户请求的细节图2-1 状态栏中显示的当前页面路径
所请求页面的全路径和名称的组合是浏览器请求页面时发往服务器的唯一信息。浏览器
的请求也能包含浏览器宿主的信息和客户端运行的操作系统。实际的信息内容将随着浏览器
的不同而有相应的变化,只有很少一部分能够由其他的应用程序如搜索引擎 r o b o t提供。为了
更清楚地了解该信息,下面是从 IE h t t p : / / w w w. w r o x . c o m / S t o r e /
D o w n l o a d . a s p的请求信息:
从中可以看出,这些信息中有关于用户代理和用户连接的细节(如缺省的语言),也有能够
接受的文件或应用程序的类型列表,这些都是 M I M E类型的,在后面将会见到更多。浏览器能