Session 会话和cookie之间的关系
我了解了Session 会话和cookie之间的关系,session,cookies,Session,Cookies,我了解了SESSION和COOKIE之间的区别,但我正在试图找到两者之间的关系。我查看了多个网站,但没有找到相关的答案,所以感到困惑。Cookie是在用户浏览器还是系统上生成的?一些人说它是在系统上生成的,而另一些人说它们是在用户的浏览器上创建的。会话还以cookie或cookie文件的形式保存。这是真的吗?会话将数据存储在服务器上。但是,会话信息存储在用户cookie中 会话使用cookies在用户的浏览器中存储有关您自己的信息。例如,cookie SSID包含一个会话标识符,对于该标识符,服
SESSION
和COOKIE
之间的区别,但我正在试图找到两者之间的关系。我查看了多个网站,但没有找到相关的答案,所以感到困惑。Cookie是在用户浏览器还是系统上生成的?一些人说它是在系统上生成的,而另一些人说它们是在用户的浏览器上创建的。会话还以cookie或cookie文件的形式保存。这是真的吗?会话将数据存储在服务器上。但是,会话信息存储在用户cookie中
会话使用cookies在用户的浏览器中存储有关您自己的信息。例如,cookie SSID包含一个会话标识符,对于该标识符,服务器将了解与该用户绑定的会话类型我找到了这个链接,它解释了cookie与会话之间关于持久性和负载平衡服务器的关系。它基本上讲的是,如果您的会话与一台服务器连接,并且您被重定向,那么cookie将存储相关的会话信息,如会话ID,以便您可以在所有服务器上持久化
这个链接比我能解释的要好得多。COOKIE驻留在客户端,即浏览器上。COOKIE随请求自动传递给服务器,服务器在服务器上使用COOKIE获取服务器为该客户端存储的任何会话数据 饼干 cookie只是存储在用户浏览器中的键值对。cookie将作为包含您请求的网页的HTTP响应的一部分发送到浏览器 当您的浏览器收到cookie时,它会存储cookie,并将其与在同一网站上发出的每个后续请求一起发送回服务器 因为cookie是HTTP请求和响应头的一部分,所以它们的大小有些有限 Cookie中存储的典型信息:
- 会话ID(见下文)
- 跟踪ID(谷歌分析等)
- 用户偏好(首选语言或货币等)
sessiond=abcdef123456789
。会话ID通常与服务器上包含会话数据的文件名匹配
会话通常是短期的,如果在一段时间内(20分钟左右)未使用,则会自动删除 会话中存储的典型信息:
- 当前登录的用户的ID
- 购物车
- 。。。您能想到的任何东西,都可以在会话到期时安全地删除
/tmp/sess\u abcdef123456789
然后它发送一个cookie头,其中包含包含网页的HTTP响应:
HTTP/1.1 200 OK
Set-Cookie: SESSID=abcdef123456789
我的浏览器存储这个cookie。如果我访问同一服务器上的其他页面,我的浏览器将发送此cookie和请求:
GET /cart HTTP/1.1
Cookie: SESSID=abcdef123456789
当接收到第二个请求时,服务器可以检查是否存在具有此ID的会话文件,并使用它检索会话数据
您的web编程语言将提供对会话的支持,并且应该为您处理大部分这种复杂性。您通常可以直接使用会话数组/对象,该数组/对象将已填充访问您的网站的用户特定的会话数据,并将在更新会话数据时自动保存;这对你来说应该是完全透明的
安全
将用户登录到您的网站时,请始终在会话中存储用户ID永远不要信任存储在cookie中的用户ID来加载用户数据。
做饼干很容易。如果要根据存储在cookie中的用户ID加载用户信息,则可以很容易地更改此cookie中的用户ID以访问网站上任何用户的帐户
另一方面,如果您将用户ID存储在会话中(该会话被分配了伪随机会话ID),攻击者将很难猜出当前分配给该用户的会话ID。我对此不理解—“服务器将了解与该用户绑定的会话类型”,是否存在为用户创建的会话类型?如果是,它们是什么?服务器,具体取决于与会话cookie关联的RealizationII本身。会话本身存储在内存或磁盘上(也取决于实现)。当向服务器发送请求时,他从请求所需的cookie中获取请求,并绑定她的现有会话。如果没有,它将创建一个新的。是否强制设置cookie?服务器自行设置是否意味着会话数据存储在cookie/cookie文件中?不,通常cookie包含会话ID。会话数据将存储在服务器上。好的,现在已经很清楚了。谢谢。熟悉一个新术语“持久性”是的,持久性、负载平衡、会话和cookie都是相关的。我明白了,你应该经常遇到这些术语。仍在学习这方面的各种概念。“会话通常是短暂的,如果有一段时间(20分钟左右)没有使用,就会自动删除。”假设我正在使用gmail帐户并在不注销的情况下关闭浏览器,过了很长时间后再回来。它没有问我