cookie session token参考文件1
cookie session token参考文件2
因为HTTP 协议是一种无状态协议,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器并不知道客户端的历史请求记录;Session 和 Cookie 的主要目的就是为了弥补 HTTP 的无状态特性。
- cookie是保存在客户端的,只能存储字符串。
- session是保存在服务器端,有状态的实现。
一般cookie和seesion配合实现,验证用户登录状态。
客户端第一次请求,服务端开辟了一块 Session 空间(创建了Session对象),同时生成一个 sessionId ,并通过响应头的 **Set-Cookie:JSESSIONID=XXXXXXX **命令,向客户端发送要求设置 Cookie 的响应。
客户端每次向同一个网站发送请求时,请求头都会带上该 Cookie信息(包含 sessionId ), 然后,服务器通过读取请求头中的 Cookie 信息,获取名称为 JSESSIONID 的值,得到此次请求的 sessionId。
缺点:session机制不能实现负载均衡。cookie也容易遭到csrf的攻击(在cookie中设置httponly=true来防止其他站点恶意攻击,获取cookie)。 - tok