后端如何生成SESSIONID

由于业务需要,需要手写一个基于内存的session。 众所周知sessionid在浏览器中,只要浏览器不关闭,cookie中的sessionid就会保持不变,但是如果重启浏览器以后sessionid就会发生变化。由于http是无状态请求,后端是如何知道浏览器发生了重启并重新生成sessionid。
请不要说使用内置的方法,我想知道他是如何实现的。

阅读 728
评论
    4 个回答
    • 138
    1. 后端未收到Cookie中携带的SID(SessionID)时,后端需要生成SID,然后写入到HTTP头:Set-Cookie:SID=XXX
    2. 浏览器关闭后后端并不会主动通知浏览器已关闭,而是Session自身由于未更新过期时间而失效,失效后即使浏览器Cookie携带SID,后端也会认为无效
    3. 如果需要知道浏览器发生了重启,可以在浏览器页面启动时写入本次启动时间和上次启动时间,这样可以判断是否重启过