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