更新時間:2023-11-13 來源:黑馬程序員 瀏覽量:
對于會話跟蹤這四個詞,我們需要拆開來進行解釋,首先要理解什么是會話,然后再去理解什么是會話跟蹤:
會話:用戶打開瀏覽器,訪問web服務器的資源,會話建立,直到有一方斷開連接,會話結束。在一次會話中可以包含多次請求和響應。
從瀏覽器發(fā)出請求到服務端響應數(shù)據(jù)給前端之后,一次會話(在瀏覽器和服務器之間)就被建立了。
會話被建立后,如果瀏覽器或服務端都沒有被關閉,則會話就會持續(xù)建立著。
瀏覽器和服務器就可以繼續(xù)使用該會話進行請求發(fā)送和響應,上述的整個過程就被稱之為會話。
用實際場景來理解下會話,比如在我們訪問京東的時候,當打開瀏覽器進入京東首頁后,瀏覽器和京東的服務器之間就建立了一次會話,后面的搜索商品,查看商品的詳情,加入購物車等都是在這一次會話中完成。
如下圖,每個瀏覽器都會與服務端建立了一個會話,加起來總共是3個會話。
會話跟蹤:一種維護瀏覽器狀態(tài)的方法,服務器需要識別多次請求是否來自于同一瀏覽器,以便在同一次會話的多次請求間共享數(shù)據(jù)。
服務器會收到多個請求,這多個請求可能來自多個瀏覽器,如上圖中的6個請求來自3個瀏覽器。
服務器需要用來識別請求是否來自同一個瀏覽器。
服務器用來識別瀏覽器的過程,這個過程就是會話跟蹤。
服務器識別瀏覽器后就可以在同一個會話中多次請求之間來共享數(shù)據(jù)。
那么我們又有一個問題需要思考,一個會話中的多次請求為什么要共享數(shù)據(jù)呢?有了這個數(shù)據(jù)共享。
功能后能實現(xiàn)哪些功能呢?
購物車: 加入購物車和去購物車結算是兩次請求,但是后面這次請求要想展示前一次請求所添加的商品,就需要用到數(shù)據(jù)共享。
頁面展示用戶登錄信息:很多網站,登錄后訪問多個功能發(fā)送多次請求后,瀏覽器上都會有當前登錄用戶的信息[用戶名],比如百度、京東、碼云等。
頁面展示用戶登錄信息:很多網站,登錄后訪問多個功能發(fā)送多次請求后,瀏覽器上都會有當前登錄用戶的信息[用戶名],比如百度、京東、碼云等。
登錄頁面的驗證碼功能:生成驗證碼和輸入驗證碼點擊注冊這也是兩次請求,這兩次請求的數(shù)據(jù)之間要進行對比,相同則允許注冊,不同則拒絕注冊,該功能的實現(xiàn)也需要在同一次會話中共享數(shù)據(jù)。