您當前位置>首頁 » 新聞資(zī)訊 » 網站(zhàn)建設 >
web開發中(zhōng)會話跟蹤方式整理
發表時間:2015-10-20
發布人:葵宇科技
浏覽次數:41
Web服務器(qì)使用Http協議。Http是無狀态協議。Http的web服務器(qì)不能保持與客戶端的關(guān)聯。會話(session)定義為在一段時間内,單一客戶與web服務器(qì)之間的一系列的交互。在一個(gè)會話中(zhōng),跟蹤請求之間的數據成為會話跟蹤。
1. 使用隐藏域進行會話跟蹤
是一種最簡單的方式,将字段隐藏在HTML表單中(zhōng),但不在客戶端顯示。比如(rú)在第一張頁面中(zhōng)輸入用戶名和(hé)密碼登陸,服務器(qì)生成響應返回第二張頁面。當第二張頁面提交時可(kě)能仍然需要知道來自第一張頁面中(zhōng)的用戶名。
那麼就可(kě)以通(tōng)過隐藏表單域來實現這一連續的過程。當第一張頁面提交後,服務器(qì)端作出響應返回第二張頁面,此頁面中(zhōng)用隐藏域記錄了來自登陸時的用戶名。通(tōng)俗說就是當服務器(qì)回發給客戶端的響應中(zhōng),就同時把用戶名再次回發到客戶端,用隐藏域隐藏起來,是不可(kě)見的。當第二張頁面提交時,此隐藏域中(zhōng)的用戶名一并随表單提交。這樣服務器(qì)就仍然可(kě)以判斷此用戶是否與以前的用戶相同。于是,再次處理完結果後繼續将響應回發給客戶端,且此響應中(zhōng)也仍然包含了用戶名,在客戶端中(zhōng)仍然用隐藏域将這一信息隐藏。這樣就完成了一個(gè)連續請求的動(dòng)作,但是對于用戶,這是不可(kě)見的。
“`
2. SSL會話{Secure Socket Layer)
安全套接字層,是一種運行在TCP/IP之上和(hé)像HTTP這種應用層協議之下(xià)的加密技術(shù)。SSL是在HTTPS協議中(zhōng)使用的加密技術(shù)。SSL可(kě)以讓采用SSL的服務器(qì)認證采用SSL的客戶端,并且在客戶端和(hé)服務器(qì)之間保持一種加密了連接,在建立了加密連接的過程中(zhōng),客戶端和(hé)服務器(qì)都可(kě)以産生一種名為“會話密鑰”的東西,它是一種用于加密和(hé)解密的對稱密鑰。基于HTTPS協議的服務器(qì)可(kě)以使用這個(gè)客戶端的對稱密鑰來建立會話.
3.Cookies
中(zhōng)文(wén)譯為小甜餅,由Netscape公司發明,是最常用的跟蹤用戶會話的方式。Cookies是一種由服務器(qì)發送給客戶端的片段信息,存儲在客戶端的内存或者硬盤上,在客戶随後對該服務器(qì)的請求中(zhōng)發回它。其實主要就是把服務器(qì)為客戶端分配的session ID保存在Cookies中(zhōng),每次發送請求時把Cookies附加到請求對象中(zhōng)一起發過去,服務器(qì)得到這個(gè)唯一的session
ID,從而可(kě)以唯一的标識一個(gè)客戶端
4.URL重寫
如(rú)果客戶端禁用了Cookies,那麼就隻能用URL重寫機制了。就是在URL中(zhōng)附加标識客戶端的session
ID,web容器(qì)解析URL,取出session ID,根據這個(gè)session ID将請求與特定的session關(guān)聯起來。
注意如(rú)果采用了URL重寫,那麼代碼裡面的所有url都要經過編碼,response.sendRedirect(url)中(zhōng)的urlresponse.encodeRedirectURL(url)編碼,其他的用response.encodeURL(url)來編碼