会话 Cookie 和一般 Cookie 之间的区别?
Difference between Session Cookies and General Cookies?
我认为会话应该只在用户登录他们的帐户时在服务器端创建。
因此,例如,当用户在没有登录的情况下访问网站时,他们仍然会获得通用 cookie。然后,如果稍后他们决定登录他们的帐户,存储在 cookie 中的会话 ID 将从服务器提供给客户端。在这种情况下,包含会话 ID 的 cookie 是否会取代一般 cookie,或者,这两种 cookie 将一起存在?
希望通俗易懂的解释。谢谢!
这是网站的实现细节,所以不能直接回答。
会话 cookie 可以在服务器端 创建 并与保存的会话相关联,但它仍然必须保存在客户端,以便客户端浏览器可以提醒服务器哪个会话使用(并验证它)。
从浏览器的角度来看,会话 cookie 与任何其他 cookie 之间没有区别。这只是一块饼干。因此,只要没有名称冲突,所有 cookie 就不能共存的技术原因是没有的。
从网络服务器的角度来看,如果非会话 cookie 有一个目的,那么当存在会话时该目的可能仍然存在,因此删除它们以在其位置使用会话可能只会使代码更多复杂的。但这并没有说明他们是否会这样做。
因此,另一种提出问题的方式是“网站的作者是懒惰而不费心删除多余的 cookie,还是他们会花哨的将它们合并到会话中并清理一切?
还要考虑会话 cookie 和其他 cookie 可能都有不同的生命周期,因此无论如何合并它们可能没有意义。
我认为会话应该只在用户登录他们的帐户时在服务器端创建。
因此,例如,当用户在没有登录的情况下访问网站时,他们仍然会获得通用 cookie。然后,如果稍后他们决定登录他们的帐户,存储在 cookie 中的会话 ID 将从服务器提供给客户端。在这种情况下,包含会话 ID 的 cookie 是否会取代一般 cookie,或者,这两种 cookie 将一起存在?
希望通俗易懂的解释。谢谢!
这是网站的实现细节,所以不能直接回答。
会话 cookie 可以在服务器端 创建 并与保存的会话相关联,但它仍然必须保存在客户端,以便客户端浏览器可以提醒服务器哪个会话使用(并验证它)。
从浏览器的角度来看,会话 cookie 与任何其他 cookie 之间没有区别。这只是一块饼干。因此,只要没有名称冲突,所有 cookie 就不能共存的技术原因是没有的。
从网络服务器的角度来看,如果非会话 cookie 有一个目的,那么当存在会话时该目的可能仍然存在,因此删除它们以在其位置使用会话可能只会使代码更多复杂的。但这并没有说明他们是否会这样做。
因此,另一种提出问题的方式是“网站的作者是懒惰而不费心删除多余的 cookie,还是他们会花哨的将它们合并到会话中并清理一切?
还要考虑会话 cookie 和其他 cookie 可能都有不同的生命周期,因此无论如何合并它们可能没有意义。