Cookie和Session是什么?有什么区别?

10 分钟阅读 613 字 + 722 词
cookie和session都是用来管理用户的状态和身份的,区别是 cookie通过在客户端记录信息 ,而session在服务端记录信息。
通常 服务器将cookie发送给用户,然后用户将cookie存储在本地,客户端发送的请求是携带cookie的。
如果使用session的时候,服务器要为 每个用户分配一个唯一的session ID,然后将这个ID发给用户,用户利用这个ID与服务端的session做一个对应。
并且 cookie的存储容量通常比较小 session的存储容量比较大 ,通常没有固定的限制。
cookie的话容易被篡改,所以安全性更低
参考答案
(1) Cookie和Session是什么?
Cookie Session 都用于管理用户的状态和身份, Cookie 通过在客户端记录信息确定用户身份, Session 通过在服务器端记录信息确定用户身份。
  1. Cookie
  • 通常, 服务器会将一个或多个 Cookie 发送到用户浏览器,然后浏览器将这些 Cookie 存储在本地。
  • 服务器在接收到来自客户端浏览器的请求之后,就能够通过分析 存放于请求头的 Cookie 得到客户端特有的信息,从而动态生成与该客户端相对应的内容。
  1. Session
客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是 Session 。Session 主要用于 维护用户登录状态、存储用户的临时数据和上下文信息等 。服务器为 每个用户分配一个唯一 Session ID ,通常存储在 Cookie 中。
(2) Cookie和Session的区别?
  • 存储位置: Cookie 数据存储在用户的浏览器中,而 Session 数据存储在服务器上 。session相当于用一个key与cookie做了关联,存在了服务中,之后将这个key发给浏览器,浏览器就以这个key来作为cookie了
  • 数据容量: Cookie 存储容量较小,一般为几 KB。 Session 存储容量较大,通常没有固定限制,取决于服务器的配置和资源。
  • 安全性: 由于 Cookie 存储在用户浏览器中,因此可以被用户读取和篡改。相比之下,Session 数据存储在服务器上,更难被用户访问和修改。
  • 生命周期: Cookie 可以设置过期时间, Session 依赖于会话的持续时间或用户活动。
  • 传输方式: Cookie 在每次 HTTP 请求中都会被自动发送到服务器,而 Session ID 通常通过 Cookie 或 URL 参数传递。