这章详细的介绍了怎样单独利用Active Server Pages进行工作处理。首先是浏览一下requestresponse对象, 在第二部分,你将学会怎样缓冲的来输出你的Active Server Pages。第三部分介绍了一些怎样来进行长时间运行脚本以及非常大的主页。最后你会学会处理Headers以及server端变量的方法。

RequestResponse对象

这部分讲述request response对象。这两个对象是你在使用Active Server Pages时最常用的,为了更好掌握,你首先需要了解一些如下的有关HTTP协议的背景知识。

HTTP协议

World Wide Web真正是怎样工作的?当你在浏览器的地址拦中敲入正确的网页地址,如果顺利的话,网页就显示出来。这一切在后台是怎样发生的呢?

当你浏览器在从一个网站接受到HTML文件,那么就会使用Hypertext Transfer Protocol(HTTP).(超文本链接传输协议)。这个协议限定了哪些信息可以在网络之间传送。通常,这种协议限定了浏览器和网站之间交互的方式。

注意

目前大部分浏览器以及网站支持HTTP1.0协议,不过,Interenet Information Server也支持HTTP1.1协议,HTTP1.1HTTP1.0快很多,因为它支持持续连接以及管线连通。如果想要了解更多,请参看Http://w3.org

当你从一个网站上接受到主页后,你的浏览器就建立了一个到网站的连接并发出一个请求,网站接受请求后发出一个响应,因此,HTTP协议也叫做请求响应协议。

所有的从浏览器到网站间的通讯都是分开的请求和响应对,浏览器总是通过发送请求初始化这种通讯过程,因此网站十分被动的由这些请求触发来作出响应。

浏览器请求为这种结构:一个请求信息包括请求行、头域,以及或者的信息体。最普遍的一个简单的主页请求信息如下例:

GET /index.cfm HTTP/1.1

Host: www.magicw3.com

这个请求信息是从www.magicw3.com站点上请求index.cfm文件。第一行中,限定了请求的方式、资源名称以及所使用的HTTP协议版本。

在这个例子中,请求的方式是GETGET方式是接受一个特定的资源,在这里,GET用来接受Index.cfm文件。其他的请求方式包括POST, HEADER, OPTIONS, DELETE, TRACE, 以及PUT。通常只是使用GET POST, 其中POST方式主要用来接受HTMLFORM中的内容。

例子的第二行是header,主要是限定了资源的网络地址,在这里这个地址市:www.magicw3.com

特别的,一个请求也会包含多个headerHeaders提供了一些针对于请求的附加信息或者请求的起源,有些Headers是标准的,但是也有浏览器限定的,本章最后部分专门讨论这种问题。

一个请求也可能包括信息体,例如,你使用POST方式来传输FORM中的内容时,当你点击submit按钮并且使用的是action=post,那么你在form中添入的内容就会通过请求的信息体发送到网站上。

网站在接受到请求后就会发送一个响应,响应结构为,每个响应都有一个状态行,包括headers的数量以及可选择的、也许还有个信息体。

你也许已经很熟悉这个状态行了。如果你输入错了一个网络地址,你的浏览器上会显示HTTP Error 404,这就是那个状态行(见图14.1),状态行包括所用协议,状态代码,以及文本信息(问题原因等),例如:网站接受的请求如果有问题,那么它响应的状态行中就返回一个错误信息以及原因,如果成功接受请求,则返回200 ok.

注意

状态行和浏览器底下的状态条绝对是两码事,一般情况下,你是看不到状态行的,通常浏览器接受到错误信息后会在浏览器主窗口中显示出状态行内容。

14.1 状态行的一个例子

 

 

 

 

 

 

 

 

 

 

 

 

Response headers包含了响应的内容信息或者是有关服务端作出响应的信息。这些headers有些是标准的,有些则是由网站而定。下一个部分“利用headers工作”有更加详细的介绍。

最后,信息体就是响应的主页内容,例如,请求index.cfm,那么index.cfm的内容就在信息体内,当然,有时候信息体的内容也可能是文本文件。word文件等等。

RequestResponse对象

Active Server Page内嵌两种对象,分别是超文本连接传输协议的请求和响应对象。request对象对应于HTTP请求,response对象对应于HTTP响应。

和绝大部分Active Server Pages对象一样,requestresponse对象也包括集合、属性以及方法,利用request对象的集合、属性和方法,你可以接受任何浏览器到网站的请求,利用response对象的集合、属性以及方法,你可以控制网站几乎所有的响应。

例如,request对象的集合包括了所有请求的HTTP headers,response对象包含了很多种改变响应的HTTP headers的方法,那么下面部分将详细介绍怎样使用这两种对象。