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