最近遇到一個小需求就是:
當用戶停留某個頁面超過4個小時的時候,這個時候如果用戶做任何交互行爲,都給用戶一個彈窗,提醒用戶登陸超時需要重新登陸等信息。
拿到這個需求的時候,心中竊喜,分析了一下,當用戶與頁面做交互的時候,比如發送請求的時候,後端會返回當sesstion timeout 的時候,返回給前端的某個標記sesstion timeout 的屬性,我只需要判斷這個標記信息,然後作出是否有彈窗的行爲。
當我很自信的時候敲好代碼的時候發現,我的天吶,怎麼測試sesstion time out的情況?待我頭大的時候,我發現我只需要clean 掉瀏覽器的cookie就行。
下面是我理解的 爲什麼我clean掉瀏覽器的cookie就可以模擬sesstion timeout 的現象
當瀏覽器發送請求的時候,服務器會每個瀏覽器發送的請求分配唯一的ID(cookie),然後傳遞給客戶端用於唯一標記這次請求,而服務器創建的那個map結構就是session,當瀏覽器再次發送請求,服務器先從request 中查找該ID, 根據查找出的request信息生成基於這些信息的response內容,再次返回給瀏覽器, sesstion timeout 我可以,我可以理解爲有關這個request的記錄銷燬,所以如果想模擬sesstion timeout 這個場景,只需要clean掉瀏覽器中cookie記錄就行