cookie,session,token
- 产生原因:
Session 和 Cookie 的主要目的就是为了弥补 HTTP 的无状态特性,用来记录用户的一些信息。
session:
- 客户端第一次请求服务端,服务器会创建一个session对象,该对象有一个唯一的id,一般称之为sessionId,服务器会将sessionId,以cookie的方式发送给浏览器,当浏览器再次访问服务器时,会将sessionId发送过来,服务器依据sessionId就可以找到对应的session对象,从而识别这个客户端。(存储在服务端)
- 若cookie被禁用,可在url中传递sessionid,?sid=XXXXXX
- 缺点:
如 A 服务器存储了 Session,做了负载均衡后,假如一段时间内 A 的访问量激增,会转发到 B 进行访问,但是 B 服务器并没有存储 A 的 Session,会导致 Session 的失效。
同时,客户端只存储自己的sessionid,而服务器要存储所有用户的session,加重了服务器的负担。
cookie:
-
HTTP 协议中的 Cookie 包括 Web Cookie 和浏览器 Cookie,它是服务器发送到浏览器的一小块数据。服务器发送到浏览器的 Cookie,浏览器会进行存储,并与下一个请求一起发送到服务器。可用于用户保持登录状态。一般最大为4096,最多存储20个,超过限制则返回空字符串。对于不支持cookie的客户端,可以采用url重写来实现
主要用于以下三个目的:- 会话管理
- 个性化
- 追踪
-
cookie创建:
客户端发起请求,服务器回复相应,并在响应头内添加Set-Cookie头部并设置cookie信息。
Set-Cookie: "name=value;domain=.domain.com;path=/;expires&