1. HTTP 协议的无状态性
HTTP 协议的无状态性,指的是客户端的每次 HTTP 请求都是独立的,连续多个请求之间没有直接的关系,服务器不会主动保留每次 HTTP 请求的状态
2. 如何突破 HTTP 无状态的限制
现实中 会员卡身份认证方式,在 Web 开发中的专业术语叫做 Cooike
3. 什么是 Cookie
Cookie 是存储在用户浏览器中的一段不超过 4KB 的字符串。是由一个名称(Name)、一个值(value)和其他几个用于控制 Cookie 有效期。安全性、使用范围的可选属性组成
不同域名下的 Cookie 各自独立,每当客户端发起请求时,会自动把当前域名下所有未过期的 Cookie 一同发送到服务器
Cookie 的几大特性:
① 自动发送
② 域名独立
③ 过期时限
④ 4KB限制
4. Cookie 在身份认证中的作用
客户端第一次请求服务器的时候,服务器通过响应头的形式,向客户端发送一个身份认证的 Cookie,客户端会自动的将 Cookie 保存在浏览器中
当客户端每次请求服务器时,浏览器会自动将身份认证相关的 Cookie,通过请求头的形式发送给服务器,服务器即可验明客户端的身份
5. Cookie 不具有安全性
由于 Cookie 是存储在浏览器中的,而且浏览器也提供了读写 Cookie 的 API,因此 Cookie 很容易被伪造,不具有安全性。因此不建议服务器将重要的隐私数据,通过 Cookie 的形式发送给浏览器
注意:千万不要使用 Cookie 存储重要且隐私的数据,比如用户的身份信息和密码等
6. 通过身份认证的安全性
为防止伪造会员卡,还需要在收银机上刷卡认证
这种 “会员卡”+“刷卡认证”的设计理念,就是 Session 认证机制的精髓
7. Session 的工作原理