根据Where are $_SESSION variables stored?:" 通常会话ID存储在Cookie中,但也可以附加到网址" 。一旦我读到它,我问myseld:那么,为什么在关闭浏览器窗口时如果它存储在cookie中会删除session-id?
然后,在谷歌搜索了一下之后,我发现有两种不同类型的cookie:会话cookie和持久性cookie。
我猜会话ID存储在会话cookie中,但是:超出名称证据,为什么会话存储在会话cookie中而不是存储在持久性cookie中?每次打开浏览器时,是否需要创建新的session-id?为什么不重复使用它?
答案 0 :(得分:0)
将会话存储在会话Cookie中的原因很多。一个例子是公用计算机:如果前一个用户已经在图书馆登录了他们的银行帐户以支付账单,那么您不希望下一个用户仅通过在浏览器中查看“历史记录”即可登录该会话。通过关闭浏览器来确保会话已消失,这可以缓解这种情况。
您还可以使用永久性cookie,许多方法也可以使用,例如Gmail,但是重要的是将有效时间设置为不太长。否则,如果有人掌握了会话ID,则可以永久使用该ID。通常,服务器会在下一次会议中断前几分钟向您发送一个新的有效会话ID,以使您的会话保持活动状态。