1. 程式人生 > 其它 >會話跟蹤技術

會話跟蹤技術

1  會話跟蹤原理:


隨著網路的發展,人們開始喜歡在網上購物,如使用者甲登入一家網上書店,
選購一本書放入購物車後,接著瀏覽其他書籍。Web伺服器會為每個使用者建立一個
購物車,在結算時區分。但是購物車的狀態是在伺服器端維護,而客戶端與伺服器
端進行通訊的協議一HTTP 協議基於請求/響應模式,是一種無狀態協議.

 

會話及會話跟蹤簡介:


會話就是使用者開啟瀏覽器訪問第一個頁面開始,一直到關閉瀏覽器結束,在這期間訪問該網站所有介面都屬於同一會話範圍。
而能夠在使用者訪問一系列頁面過程中,識別該使用者一直是同一個使用者的過程。稱為會話跟蹤技術。會話跟蹤就是記錄和區分不同客戶相關的資料的一種技術。

 

 

2   會話跟蹤技術可以通過以下4種方式實現:


(1) Session 技術: Web伺服器為客戶端開闢的一塊儲存空間,用於存放資料
(2) Cookie 技術: Cookie是一小段文字資訊,伴隨使用者請求在Web伺服器之間傳遞,Cookie存放於客戶端

(3)表單隱藏域技術: html的一種表單元素,通過表單隱藏域來實現在不同的請求中傳遞資料

(4) URL重寫技術:     URL重寫是指伺服器程式對接收的URL請求重新寫成網站可以處理的另一個URL的過程。重寫是擷取傳入 Web 請求並自動將請求重定向到其他 URL 的過程

 

會話跟蹤工作流程:


瀏覽器對其自身發出的每個請求訊息進行標識,屬於同一個會話中的請求訊息
均附帶同樣的標識ID,而不同的會話請求訊息則附帶不同的標識ID,通常被稱為會
話ID (SessionID), 其 工作流程如下:


(1) 客戶端第一次訪問Web伺服器時,伺服器為該客戶端建立一
唯一的SessionID.
(2) 伺服器響應客戶端,將SessionlD 回傳給客戶端。
(3) 客戶端再次向Web伺服器發出請求時,附帶SessionID。並用
SessionlD來唯一標識客戶端

 

 

Cookie技術
Cookie概述:


        Cookie是在瀏覽器訪問Web伺服器的某個資源時,由Web服 務器在HTTP響應信
息中附帶傳送給瀏覽器的一段資料。
        瀏覽器可以決定是否儲存這段資料。一旦瀏覽器儲存了這段資料,
每次訪問該Web伺服器時,都會在HTTP請求中將這段資料回傳給Web伺服器

操作Cookie :

 Servlet API中提供了一個javax. servlet .http.Cookie類來封裝Cookie資訊。
其包含生成Cookie資訊和提取Cookie資訊的方法。Cookie的常用方法如下:


//建立一個儲存使用者名稱資訊的Cookie物件
Cookie ck = new Cookie(" name",”jack");
ck. setMaxAge(60+60*24);//代表該cookie在客戶端瀏覽器可以存放1天時間

 

 

表單隱藏域技術
表單隱藏域概述:
隱藏域是用於收集或傳送資訊表單的不可見元素,對於網頁的訪問者而言,
隱藏域是不可見的。隱藏城必須配合表單使用,使用方法和文字框元素的區別不大。
當提交表單時,隱藏域會將資訊用事先設定時定義的名稱和值發進給伺服器。
隱藏域的格式語法如下:
<form action=“url 路徑”method= “請求方法”>
<irput type=“hidden”name= “ 隱藏域別名”value=“”/>
</from>

 

 

使用Cookie實現記住使用者名稱和密碼功能
網頁記住密碼功能概述:


網頁記住密碼功能是許多網站都具備的功能。

大體實現思路是通過:


取/存/刪Cookie實現的;每次進入登入頁,先去讀取Cookie,如果瀏覽器的
Cookie中有賬號資訊,就自動填充到登入框中,存Cookie是在登入成功之後,
判斷當前使用者是否勾選了。“記住密碼” ,如果勾選了,則把賬號資訊存到Cookie

 

原理是:如果使用者勾選了記住使用者名稱功能,服務端處理請求的時候
使用者名稱和密碼以Cookie的形式發回客戶端測覽器,此時瀏覽器會儲存這個Cookie
並且下次訪問這個介面的時候,還會把這個Cookie傳送給服務端,伺服器端和
客戶端提交的請求中包含了這兩個資料。

 

I.會話跟蹤技術可以通過哪種方式實現?
(1) Session技術

(2) Cookie技術

(3) 表單隱藏域技術

(4) URL重寫技術


2.會話跟蹤技術工作流程是什麼?
(1)客戶端第一次訪問Web伺服器時,伺服器為該客戶端建立一個會話
唯一的SessionID。
(2) 伺服器咱應客戶端,將SessionID回傳給客戶端。
(3) 客戶端再次向Web伺服器發出請求時,附帶SessionID。 伺服器
SessionD來唯一標識客戶端。