【发布时间】:2021-06-12 05:14:29
【问题描述】:
我认为只有在用户登录其帐户时才应在服务器端创建会话。
因此,例如,当用户在未登录的情况下访问网站时,他们仍然会获得一般 cookie。然后,如果稍后他们决定登录到他们的帐户,存储在 cookie 中的会话 ID 将从服务器提供给客户端。在这种情况下,包含会话 ID 的 cookie 会取代一般的 cookie,还是两个 cookie 一起存在?
希望用简单的术语来解释。谢谢!
【问题讨论】:
我认为只有在用户登录其帐户时才应在服务器端创建会话。
因此,例如,当用户在未登录的情况下访问网站时,他们仍然会获得一般 cookie。然后,如果稍后他们决定登录到他们的帐户,存储在 cookie 中的会话 ID 将从服务器提供给客户端。在这种情况下,包含会话 ID 的 cookie 会取代一般的 cookie,还是两个 cookie 一起存在?
希望用简单的术语来解释。谢谢!
【问题讨论】:
这是网站的实现细节,无法直接回答。
会话 cookie 可能是在服务器端创建并与保存的会话相关联,但它仍然必须保存在客户端,以便客户端浏览器可以提醒服务器使用哪个会话(并验证它)。
从浏览器的角度来看,会话 cookie 和任何其他 cookie 之间没有区别。这只是一个饼干。因此,只要没有名称冲突,所有 cookie 不能共存就没有技术原因。
从网络服务器的角度来看,如果非会话 cookie 有目的,那么当有会话时,该目的可能仍然存在,因此删除它们以使用会话代替它可能只会使代码更加复杂。但这并没有说明他们是否会这样做。
因此,问这个问题的另一种方式是“网站的作者是会变得懒惰并且不会打扰删除多余的 cookie,还是会花哨地将它们合并到会话中并清理内容?”
还要考虑会话 cookie 和其他 cookie 可能都有不同的生命周期,因此无论如何合并它们可能没有意义。
【讨论】: