步骤2: 服务器会发放用以识别用户的SessionID。通过验证从客户端发送过来的登录信息进行身份验证,然后把用户的认证状态与Session ID 绑定后记录在服务器端。
向客户端返回响应时,会在首部字段Set-Cookie内写入Sesiion ID(如***=82438sd....)。我们可以把Session ID 想象成一种用于区分不同用户的等位号,然而如果Session ID 被第三方盗走,对方就会伪装成你的身份进行恶意操作。因此必须防止Session ID 被盗,为了做到这点,Session ID 应使用难以推测的字符串,且服务器端也需要进行有效期的管理,保证其安全性。另外为了减轻脚本攻击(XSS)造成的损失,建议事先在Cookie 内加上httponly 属性。
步骤3:客户端收到从服务器端发来的Session ID 后,会将其作为Cookie 保存在本地。下次向服务器发送请求时,浏览器会自动发送Cookie,所以Session ID 也会随之发送到服务器。服务器端可通过验证接收到的Session ID 识别用户及其认证状态。