麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > ASP > 正文

ASP應用程序設(shè)計的Web狀態(tài)管理分析

2024-05-04 11:07:40
字體:
供稿:網(wǎng)友
許多開發(fā)人員把應用程序傳送到Web之前從來沒考慮狀態(tài)的概念。正如前面說過的,Web是一個無狀態(tài)的環(huán)境。因此應該探討一下狀態(tài)是什么,了解能夠避免產(chǎn)生問題的方法。

  狀態(tài)的準確定義

  在單用戶程序中,創(chuàng)建一個可執(zhí)行的應用程序時,例如使用VB建立一個.exe文件,可以聲明一個全局(或Public)變量,然后在代碼中任何地方可對其進行訪問。在應用程序運行的所有時刻,時刻值一直是有效,并且是可訪問的。

  對于一個傳統(tǒng)的客戶機/服務器解決方案,例如一個基于客戶機的應用程序?qū)σ粋€基于服務器的數(shù)據(jù)庫引擎進行訪問的系統(tǒng),每個客戶端建立了一個與服務器和數(shù)據(jù)庫應用程序的連接。這種連接通常是通過驗證用戶的方法來建立的。

  驗證過程是典型的識別用戶身份的過程,通過一個用戶名和口令組合來證明是否為合法的用戶。

  一旦通過驗證,在客戶端和基于服務器的應用程序之間就建立了連接,該連接在用戶使用該應用程序的所有時間內(nèi)一直保持有效。當用戶注冊到酵Windows 2000服務器上時,這一切便會發(fā)生。無論何時,管理員使用“Active Directory Users and Computers”實用程序(單擊“Start”菜單的“Administrative Tools”選項中的“Directory Management”項)都可以觀察到活動的用戶連接。這個過程在許多系統(tǒng)中都相同,例如Microsoft SQL Server。

  這種永久的連接意味著:當用戶發(fā)送指令或請求到服務器上時,服務器會很容易地識別每個用戶。同樣服務器的響應或任何其他用戶的信息也能直接返回用戶。要進一步指出的是服務器可以比較容易地存儲與每個客戶相關(guān)的值和信息,并在需要的時候提供給相應的客戶。當然,服務器應用程序能夠擁有主全局變量,以便于用戶在需要的時候進行訪問。

  這種識別每個客戶端的請求并在內(nèi)存中保存相關(guān)用戶的值的能力構(gòu)成狀態(tài)。可以認為狀態(tài)代表應用程序的值、環(huán)境以及用戶的內(nèi)部變量,并貫穿于應用程序和用戶連接的整個過程。

  狀態(tài)的重要性

  如果打算創(chuàng)建與用戶進行交互的基于Web站點的應用程序,而不是僅顯示獨立頁面的Web網(wǎng)站,必須能夠為每個用戶提供獨立的狀態(tài)。這可能只是記住他們的名字,也可能要為每個用戶存儲對象引用或不同的記錄集。如果不能這樣做,ASP網(wǎng)頁就不能做更多的事情,因為該頁面執(zhí)行完成時,頁面中的變量和其他相關(guān)資料都破壞了。錄用戶請求下一個頁面時,這個頁面提供的所有信息將全部失去。

  因此,需要找到一種方法,保存每個訪問者的狀態(tài)。能夠存儲對所有用戶而言的全局值是非常重要。例如,一個Web風格的訪問或頁面點擊計數(shù)器,它不為每個用戶提供自己的計數(shù)器,用戶們通常想要看到訪問者的總數(shù),而不僅僅是他們自己訪問的次數(shù)。訪問者的數(shù)目需要與應用程序級狀態(tài)一起存儲,而不是與用戶級狀態(tài)一起存儲。

  這不是一個剛出現(xiàn)的問題,自從商用站點占據(jù)了Web,就已經(jīng)存在,甚至更早些。所以已有許多在Web上存儲狀態(tài)的傳統(tǒng)的解決方案。Web站點管理員想要了解訪問者以前是否曾訪問過他們的網(wǎng)站,如果訪問過,訪問過多少次?還定期訪問其他什么網(wǎng)站等。這樣可以更好地制定其廣告目標。所有這些都要求一種方法來存儲有關(guān)用戶在訪問時所產(chǎn)生的網(wǎng)頁請求或每次訪問間的信息。

  在Web上創(chuàng)建狀態(tài)

  在頁面請求和站點訪問之間提供狀態(tài)常用的方法是通過cookie。我們在前面的章節(jié)中已經(jīng)看到,如何在客戶端的計算機中存放相應的值,這些值與每個頁面請求一起發(fā)送給對此cookie有效的域。通過用ASP檢查和更新cookie,在某種程度上能夠保持一個狀態(tài)。可以使用所包含的信息來識別用戶,然后把用戶連接到一個已存儲相應值的集合。

  例如,可以檢測一個用戶請求是否包含一個站點指定的cookie。如果不包含,則為該用戶分配一個某種類型的標識,指明一個數(shù)量,并存儲在帶有一個長有效期的cookie中。以后該用戶對這個站點的每一次訪問,都能夠檢測到cookie并更新所包含的信息。同時可以收集有關(guān)訪問的次數(shù)和持續(xù)時間的數(shù)據(jù),并存儲在服務器上,以備將來使用。

  但是,如果用戶轉(zhuǎn)移到另一個計算機,或刪除了cookie,或者他們的瀏覽器拒絕接收發(fā)送給他們的cookie,會發(fā)生什么事情呢?在這種情況下,不能維持狀態(tài),因為下一次不能識別他們現(xiàn)在,Web上有許多cookie,大多數(shù)人會接受它們,而不加理會。如果打開瀏覽器中的“Warn before accepting cookies”選項,接著漫游幾個大的站點,你就會明白其中的含意。

  1. 匿名訪問者與授權(quán)的訪問者

  如果認為cookie是一個有點草率的解決方案,可以使用更直接的方法。許多站點采用的一種方法是,在訪問者點擊一個站點時,或者點擊一個要求驗證身份的頁面時,彈出一個進行登錄的對話框。訪問者首先必須進行注冊,獲得一個某種類型的用戶名/口令的組合,才能允許訪問相應的站點或頁面。

  為了證實訪問者是一個已知的并且合法的用戶,在訪問者的計算機上放置的一個cookie,它或者保存注冊的詳細數(shù)據(jù),或者是一把表明已驗證過身份的“鑰匙(key)”。同時,訪問者的詳細數(shù)據(jù)永久地保存在服務器上,準備再次訪問時使用。如果訪問者的瀏覽器中有了這樣一個cookie,他就可以自由地訪問該網(wǎng)站,因為已經(jīng)驗證過了。

  如果cookie沒有有效期限(Expires),cookie的值在關(guān)閉瀏覽器時自動消失,在下一次訪問時必須重新注冊和再次驗證。當然,如果拒絕接收cookie或刪除了cookie,就只能再次得到注冊對話框。這樣的話,如果不被識別,就不能訪問該站點。

  通過強制用戶就像注冊到自己的網(wǎng)絡(luò)一樣注冊到Web服務器,Windows 2000整體安全性能為IIS提供更強和更安全的驗證功能。但是,這只能與Internet Explorer 3.0和之上版本的瀏覽器一起工作。IIS也可以使用BASIC驗證允許非Microsoft瀏覽器注冊Web服務器。

  2. 不再有匿名訪問者

  在IIS Web服務器上使用ASP時,除非用戶離開該站點到另一個網(wǎng)站或者關(guān)閉了瀏覽器,否則能在當前會話中跟蹤用戶。在本章的后面,將看到如何使用這個功能來標識一個訪問者、存儲用戶的本地信息和提供狀態(tài)。下面與已經(jīng)討論過的解決方案相比較,討論其工作方式。
ASP和IIS共同提出了一個用戶會話的概念,通過ASP Session對象進行交互。在每個訪問者第一次訪問服務器上的一個ASP網(wǎng)頁時,為他創(chuàng)建一個新的并且獨立的會話對象,分配給該會話一個會話標識號,并把包含會話標識符的特殊加密版本的一個cookie發(fā)送給客戶。

  cookie的路徑(參看前面的章節(jié)有關(guān)cookie屬性的描述)設(shè)置為運行在服務器上的ASP應用程序的根路徑。這很可能上缺省的Web網(wǎng)站的根目錄(即“/”),但也可能會是另外一個值(稍后會看到)。在cookie中沒有提供Expires值,所以當瀏覽器關(guān)閉時,cookie值也就消失。

  每當這個用戶訪問這個ASP網(wǎng)頁,ASP都會查找這個cookie。命名為ASPSESSIONIDxxxxxxxx,其中每個x是一個字母字符。從第2章圖2-7所示的ServerVariables集合,能夠在HTTP報頭中看到它。

  但是,這個cookie不會出現(xiàn)在 Request.Cookies或Response.Cookies集合中,ASP把它隱藏起來,但仍保存在瀏覽器上。對于每個ASP網(wǎng)頁請求,ASP都要查看該值。這個cookie包含的值,指明了這個用戶的會話。因此,相應的Session對象(該對象在內(nèi)存中已被處理,并且一直包含所有在前一頁面請求過程中進行操作的值)的內(nèi)容可以移交給ASP網(wǎng)頁中的腳本。

  當然,如前所述,如果客戶瀏覽器不接收或不支持這些cookie,這個處理將失敗。在這種情況下,不能創(chuàng)建ASP會話,對這個訪問者的狀態(tài)也不進行自動維護。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 日本在线视 | 全黄裸片武则天一级第4季 九色p | 欧美中文字幕一区二区 | 一级在线 | 日韩av电影免费在线观看 | wwwcom国产| 成人毛片100部免费观看 | 亚洲综合无码一区二区 | 999久久国精品免费观看网站 | 国产一有一级毛片视频 | 成码无人av片在线观看网站 | 欧美2区 | 久久久婷婷一区二区三区不卡 | 国产免费观看视频 | 在线成人免费观看www | 成人午夜视频在线观看免费 | 免费国产成人高清在线看软件 | 91美女视频在线 | 免费看性xxx高清视频自由 | xp123精品视频 | 九一成人 | 农村寡妇偷毛片一级 | 国产一区二区午夜 | 操操日日 | 日日草天天干 | 欧美69free性videos | 国产一级性生活视频 | 亚洲天堂成人在线 | 视频一区二区三区在线 | 国产精品视频在线观看免费 | 精品国产一区二区久久 | 免费午夜视频在线观看 | 欧美成人高清视频 | 成人福利视频在线 | 91精品片 | 欧美视频一区二区 | 亚洲天堂午夜 | 最新中文字幕日本 | 中午字幕无线码一区2020 | 精品国产观看 | 国产精品久久久久网站 |