瀏覽器和服務(wù)器采用http無狀態(tài)的通訊,為了保持客戶端的狀態(tài),使用session來達到這個目的。然而服務(wù)端是怎么樣標(biāo)示不同的客戶端或用戶呢?
這里我們可以使用生活中的一個例子,假如你參加一個晚會,認(rèn)識了很多人,你會采取什么方式來區(qū)分不同的人呢!你可能根據(jù)臉型,也有可能根據(jù)用戶的名字,
或者人的身份證,即采用一個獨一無二的標(biāo)示。在session機制中,也采用了這樣的一個唯一的session_id來標(biāo)示不同的用戶,不同的是:瀏覽器每次請求都會帶上
由服務(wù)器為它生成的session_id.
簡單介紹一下流程:當(dāng)客戶端訪問服務(wù)器時,服務(wù)器根據(jù)需求設(shè)置session,將會話信息保存在服務(wù)器上,同時將標(biāo)示session的session_id傳遞給客戶端瀏覽器,
瀏覽器將這個session_id保存在內(nèi)存中(還有其他的存儲方式,例如寫在url中),我們稱之為無過期時間的cookie。瀏覽器關(guān)閉后,這個cookie就清掉了,它不會存在用戶的cookie臨時文件。
以后瀏覽器每次請求都會額外加上這個參數(shù)值,再服務(wù)器根據(jù)這個session_id,就能取得客戶端的數(shù)據(jù)狀態(tài)。