web開發中會話跟蹤方式整理


Web服務器使用Http協議。Http是無狀態協議。Http的web服務器不能保持與客戶端的關聯。會話(session)定義爲在一段時間內,單一客戶與web服務器之間的一系列的交互。在一個會話中,跟蹤請求之間的數據成爲會話跟蹤。

1. 使用隱藏域進行會話跟蹤

是一種最簡單的方式,將字段隱藏在HTML表單中,但不在客戶端顯示。比如在第一張頁面中輸入用戶名和密碼登陸,服務器生成響應返回第二張頁面。當第二張頁面提交時可能仍然需要知道來自第一張頁面中的用戶名。 
那麼就可以通過隱藏表單域來實現這一連續的過程。當第一張頁面提交後,服務器端作出響應返回第二張頁面,此頁面中用隱藏域記錄了來自登陸時的用戶名。通俗說就是當服務器回發給客戶端的響應中,就同時把用戶名再次回發到客戶端,用隱藏域隱藏起來,是不可見的。當第二張頁面提交時,此隱藏域中的用戶名一併隨表單提交。這樣服務器就仍然可以判斷此用戶是否與以前的用戶相同。於是,再次處理完結果後繼續將響應回發給客戶端,且此響應中也仍然包含了用戶名,在客戶端中仍然用隱藏域將這一信息隱藏。這樣就完成了一個連續請求的動作,但是對於用戶,這是不可見的。

“`

2. SSL會話{Secure Socket Layer)

安全套接字層,是一種運行在TCP/IP之上和像HTTP這種應用層協議之下的加密技術。SSL是在HTTPS協議中使用的加密技術。SSL可以讓採用SSL的服務器認證採用SSL的客戶端,並且在客戶端和服務器之間保持一種加密了連接,在建立了加密連接的過程中,客戶端和服務器都可以產生一種名爲“會話密鑰”的東西,它是一種用於加密和解密的對稱密鑰。基於HTTPS協議的服務器可以使用這個客戶端的對稱密鑰來建立會話.

3.Cookies

中文譯爲小甜餅,由Netscape公司發明,是最常用的跟蹤用戶會話的方式。Cookies是一種由服務器發送給客戶端的片段信息,存儲在客戶端的內存或者硬盤上,在客戶隨後對該服務器的請求中發回它。其實主要就是把服務器爲客戶端分配的session ID保存在Cookies中,每次發送請求時把Cookies附加到請求對象中一起發過去,服務器得到這個唯一的session 
ID,從而可以唯一的標識一個客戶端

4.URL重寫

如果客戶端禁用了Cookies,那麼就只能用URL重寫機制了。就是在URL中附加標識客戶端的session 
ID,web容器解析URL,取出session ID,根據這個session ID將請求與特定的session關聯起來。 
注意如果採用了URL重寫,那麼代碼裏面的所有url都要經過編碼,response.sendRedirect(url)中的urlresponse.encodeRedirectURL(url)編碼,其他的用response.encodeURL(url)來編碼

5.IP地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章