会话的概念
由于HTTP协议无状态的特点,所以客户端和服务器都不会保存客户端请求的相关信息。
所以服务器无法知道客户端的请求状态是不是已登录的状态,
为了解决这个问题,我们需要通过一个字符串表示用户的未登录/已登陆的状态。然后控制用户对资源的访问。
在现在的Web项目中,管理用户会话主要有3种实现方式:
基于Cookie
基于Session
token
典型的会话管理接口也叫做登陆接口或授权接口
基于Cookie实现会话管理
Cookie是一个容器,默认大小4KB,主要用于存放数据大小比较小的临时数据。
Cookie的特点:
不能跨域:我们访问服务器时,都会通过域名来访问。例如:www.lagou.com,这个www.lagou.com是域名。 如果是我们www.lagou.com域名指向的服务器发送的cookie,那么这个cookie就不能在www.baidu.com中使 用。
存在有效期: Cookie存在有效时间,超过规定的时间后就会失效。可以设置Cookie的配置,来让cookie永久不失效。 不设置有效期时,cookie默认是一个session cookie,浏览器不关闭,cookie不失效
大小:默认4KB大小
有数量限制:不同浏览器限制的cookie数量不一样,为了保证兼容性,做最低兼容,cookie数量不要超过二十 个。
对字符编码有限制
Cookie实现会话管理流程
1.用户发起登陆请求,服务器根据用户输入的用户名密码判断是否满足登陆的条件,满足则创建一个用户凭证 (字符串)
2.服务器对该用户凭证进行签名,加密后,写在cookie中
3. 服务器返回该cookie给客户端
4.客户端保存cookie,并且下次请求时,会默认发送cookie给服务器,服务器做解密和签名认证后拿到其中的登 陆凭证,判断其有效性。判断通过则允许用户访问登陆后的页面,不通过则提示用户登陆
基于Session实现会话管理session是把用户数据,放在服务端。
但是客户端依然需要通过sessionid来访问存放在服务端的session,这样才能实现会话管理。
cookie和session的区别
1.位置不同,cookie在客户端,session在服务器
2.大小不同,cookie默认4kb,session无上限。
3.性能不同,cookie在客户端,不会占用太多服务器资源,而session占用服务器资源,对服务器压力较大
4.有效期不同,cookie可以设置为永久不失效,而session中,浏览器一旦关闭sessoin就会自动close失效
5.安全性不同:cookie在客户端不安全。session在服务端更安全
标签:--,接口,会话,session,cookie,服务器,Cookie,客户端 From: https://www.cnblogs.com/cyq0528/p/17527604.html