- 相關推薦
ASP 3.0高級編程(一)
這兩個對象是ASP所提供的內置對象中最常用的兩個。在瀏覽器(或其他用戶代理)和Web服務器之間,請求與響應中發生的信息交流可以通過ASP中的兩個內置對象來進行訪問和管理,這兩個對象稱為Request和Response對象。
在ASP頁中所要進行的工作幾乎都要訪問這兩個對象,使用這兩個對象的方式將影響頁面的效率及可靠性。當然,它們的主要用途是訪問用戶發回到服務器的值,即從HTML頁的
段獲得或附在URL后面作為查詢字符串,并創建合適的輸出返回給用戶,且它們可以共享很多相同的因素。例如兩個對象都可以使用存儲在客戶端計算機上的cookie。
因此,我們把內容分成兩個獨立的部分(每個對象一部分),并且首先從客戶端與服務器這間的信息交流入手,然后再研究每一個對象。
研究的內容是:
· 客戶端與服務器如何交流以傳遞Web或其他資源。
· Request和Response對象的細節,以及它們之間的共同點。
· 如何通過一個窗體和查詢字符串訪問相應的值。
· 如何讀入或創建cookie并存放在客戶端的計算機上。
· 服務器的變量是什么?如何訪問和修改HTTP報頭。
· 說明其他相關條目的變化,如客戶的證書使用。
客戶端和服務器的交流
為節省篇幅,后面的內容中使用“瀏覽器”(browser)一詞。但需要記住的是,能夠訪問Web頁面的應用程序絕不僅只有瀏覽器,有許多特殊的應用程序從站點上下載網頁,如為那些視力有缺陷用戶設計的特殊的客戶端程序或者是用通常的瀏覽器有其他困難的人。最顯而易見的例子是搜索引擎用來訪問Web上的站點的robot。全面考慮這些因素,包括普通的Web瀏覽器,準確的詞匯應該是用戶代理(user agent)。
頁面請求的對話
當一個瀏覽器向Web站點提出頁面請求時,顯然必須告訴服務器,其請求的是哪一個頁面。首先要做的是通過域名與服務器建立連接,然后提供所請求的頁面的全路徑和名稱。為什么要全路徑和名稱?Web是一個無國界的環境,所以必須創造一個會話標識每個客戶(將在以后介紹ASP如何做到這點)。
這就意味著每當服務器完成向客戶發送頁面后,服務器就徹底忘記了這個客戶。因此,當客戶請求下一個頁面時,與一個新的訪問者是完全相同的。服務器無法記住這個客戶,相應的,也就無法判斷它們上次請求的頁面是哪一個。因為,不能使用相對路徑來提供一個頁面,即使頁面包含一個相對的鏈接也不行,例如:
Next Page
瀏覽器將自動建立完整的新頁面的URL,方法是使用當前頁的域和路徑;或使用頁面段中的元素,告訴瀏覽器一個頁面中所有鏈接的其URL是什么。例如:
http:///Store>
當把鼠標指向一個頁面的鏈接時,可在瀏覽器的狀態欄中看到。當前頁面的路徑和當前域名或基域名或基路徑已經與請求的頁面名結合在一起了。
1、 客戶請求的細節
所請求頁面的全路徑和名稱的組合是瀏覽器請求頁面時發住服務器的唯一住處瀏覽器的請求也能包含瀏覽器宿主的住處和客戶端運行的操作系統。實際的信息內容將隨著瀏覽器的不同而有相應的變化,只有很少一部分能夠由其他的應用程序如搜索引擎robot提供。為了更清楚地了解該信息,下面是從IE 5.0發出的一個對頁面http:///Store/
Download.asp的請求信息:
7/8/99 10:27:16 Sent GET /Store/Download.asp HTTP/1.1
Accept: 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-us
Encoding: gzip, deflate
Referer: http://ww.wrox.com/main_menu.asp
Cookie: VisitCount=2
【ASP 3.0高級編程一】相關文章:
ASP 3.0高級編程(二)05-29
ASP05-29
ASP在線教育系統(一)05-11
數控編程畢業論文致謝(精選6篇)04-23
高級職稱評審論文答辯細則05-26
高級職稱論文發表要求說明07-27
高級財務管理結課論文(精選12篇)05-23
一物一權原則質疑12-06
一帶一路論文參考文獻范例09-19