1.什么是 Cookie
- Cookie 是存储在用户浏览器中的一段不超过 4 KB 的字符串。它由一个名称(Name)、一个值(Value)和其它几个用于控制 Cookie 有效期、安全性、使用范围的可选属性组成。
- 不同域名下的 Cookie 各自独立,每当客户端发起请求时,会自动把当前域名下所有未过期的 Cookie 一同发送到服务器。
- Cookie的几大特性:
① 自动发送
② 域名独立
③ 过期时限
④ 4KB 限制
2. Cookie 在身份认证中的作用
- 客户端第一次请求服务器的时候,服务器通过响应头的形式,向客户端发送一个身份认证的 Cookie,客户端会自动将 Cookie 保存在浏览器中。随后,当客户端浏览器每次请求服务器的时候,浏览器会自动将身份认证相关的 Cookie,通过请求头的形式发送给服务器,服务器即可验明客户端的身份。
3. Cookie 不具有安全性
- 由于 Cookie 是存储在浏览器中的,而且浏览器也提供了读写 Cookie 的 API,因此 Cookie 很容易被伪造,不具有安全性。因此不建议服务器将重要的隐私数据,通过 Cookie 的形式发送给浏览器。
4. Session 的工作原理
- 登录成功后,将登录成功后的用户信息存储在服务器的内存中,同时生成对应的 Cookie 字符串。客户端再次发送请求时,通过请求头自动把当前域名下所有可用的 Cookie 发送给服务器。服务器根据请求头中携带的 Cookie,从内存中找到对应的用户信息。用户的身份认证成功后,服务器针对当前用户生成特定的响应内容。