- Cookies:
而 Cookies 又分為兩種模式:一為連線階段的 cookies(未儲存),二為儲存在電腦上的 cookies。
第一種 cookies,只存在於連線狀態下,當過了 timeout時間或是瀏覽器關閉,其資訊便會消失。
第二種 cookies,即使瀏覽器關閉了,但其資訊仍會存在於 Client端電腦,其資訊包含 Web Server 所在及執行何程式和所需保留的資料,當下次再連線時,資訊便可帶出。而其資料可在 Client端保留多久可由 Expires 屬性設定。
- Session:
◎ 它的運作方式為:當 Client 向 Web Server 提出連線的請求時,如果有用到 Session 的功能,那麼 Server 會把連線的時間、Client的位置、欲保留的資料儲存在 Server端,並在 Http Header 部分加上連線 session id〈在Header Cookies欄位可發現〉,此 id 是和Server 相呼應的,如此再度連線時,Server 才能藉此判斷連線來源。除了 session id 外,還有連線時間〈注意:Client 端是不存欲保留資料的〉。
我們可以設定 session 的 TimeOut 時間,每次有連線動作發生,TimeOut 時間都會重新開始計算。一但 TimeOut 時間到了,此Session便會消失。〈TimeOut時間並非抓系統時間來算,所以改系統時間的方式是不影響TimeOut的〉
- Application:
或許您會想到使用 Server端的檔案或資料庫儲存,沒錯這是一個方式但 ASP 提供了我們一個更簡單的方式,使用 application 物件。
它提供了使用同一應用程式的使用者,彼此分享資訊。而且還提供Lock和 UnLock方法,以避免多使用者同時更改某一屬性值。
◎ 須注意一但 IIS 重新啟動後,其 Application 的變數值,可是會消失的喲!因此,其用法需配合您的實際需求,如:計算現在線上人數就很適合。但若是網站開站到現在瀏覽人次,使用檔案或資料庫的方式可能會比較好。
比較:
a. cookies & session:session可說是連線階段的 cookies。
b. session & application:
‧session是使用者層級的物件。
‧application是應用程式層級的物件。
Global.asax
此檔案可用來處理application、session物件起始或結束時需要執行的動作。需放在 Web 虛擬根目錄下。
‧執行順序為:Application_OnStart → Session_OnStart →Session_OnEnd → Application_OnEnd
沒有留言:
張貼留言