Cookie和Session
1.Cookie 属性
-
域名:
顶级域名下 设置的 cookie 是可以 被 二级域名 共享 访问的
eg:
xinnet.com 下设置的 cookie 在 domain.xinnet.com 下也可以被访问 -
作用:
在网站中 http 请求 是 无状态的, 也就是 即使 第一个 登陆成功 之后,第二次 请求 服务器 依然 不知道 当前请求的是哪个用户,而cookie 的出现 就是 为了解决这个 问题。 第一次登陆 时 服务器通过响应头(response headers)返回 cookie 给 浏览器,浏览器存储起来,下次请求 时 浏览器 就会 带上 cookie 请求。
cookie的存储数据量有限,一般不超过4KB,只能存储 一些 小量的 数据。
2.session:
- session 不等于 cookie , session 的作用 也是 存储 信息的,与cookie 不同的是 session 是存储在 服务器 上的,cookie 是存储在本地浏览器。 存储在服务器 上的数据 会更加 安全。
3.cookie与session结合使用
- 存储在服务端: 通过cookie存储一个 session 的key (例如session_id) ,用户 具体 信息 则是存储在 session 中,如果用户 已经登陆,则服务器 会在 cookie 中 保存一个 key值 (session_id) 通过 response headers set-cookie 返回给浏览器, 浏览器 下次请求的时候,会带上cookie 服务器再通过 cookie中 的 session key值(session_id) 匹配相应的 session 数据,从而获取 用户信息。 这种 叫做 server side session
- 将session 数据 加密 ,保存再 cookie 中,这种叫做 client side session