《每日一记》网络篇:cookie/seesion/token

本文介绍了两种常见的状态保持方法:一种是使用cookie和session配合来保持登录状态,这种方法相对安全但存在一些局限性;另一种是使用token安全令牌,该方法更加灵活和安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、实现状态保持的原理

       在户登录一个网站时常常会涉及到用户登录的状态保持,来使得用户获得更好的体验。那么cookie和session就是为了实现状态保持的。整个实现状态保持的流程是这样的:

1.用户在登录时向后端服务器发送post请求,服务器接受请求,检验请求参数无误后,处理登录业务逻辑,返回响应。此时服务器端生成对应的cookie字符串,响应到前端浏览器,

2.浏览器本地保存cookie值;

3.在登录后用户再向服务器发送请求,则带者浏览器本地保存的cookie值,发送给服务器;

4.服务器在接受到请求后,获取到请求参数(里面带有cookie),服务器把获取的cookie值跟之前服务器生成的cookie比较,发现cookie值相同,则默认时同一个用户再访问服务器,从而实现用户登录状态保持。

二、cookie和session的本质区别

1. cookie和session都是基于键值对的字符串;

2.都是都由后端服务器生成的;

3.cookie字符串保存在客户端浏览器中,session值保存在服务器中,session比cookie更安全。

4.我个人理解cookie相当于明文,而session类似于密文,是由后端服务器经过编码后的一段无序字符串。

5.既然session是key-value格式的数据,则它的键session_id保存在cookie中的,值session_data保存在服务器,通过key来取到value;、

 

如何保持用户的登录状态?

实现登录状态保持的两种方法:
第一种,cookie和session的配合使用
实现原理:当用户请求页面,一般需要先登录,用户第一次输入用户名和密码之后,前台发送post请求,后台获取用户信息,通过查询数据库来验证用户信息是否正确,如果验证通过,则会开辟一块session空间来储存用户数据,并且同时生成一个cookie字符串,由后台返回给前台,前台接收后,会把这个cookie字符串储存到浏览器的cookie空间中,这个cookie就相当于一把钥匙,可以打开后台存储对应用户信息的锁,当用户下一次请求的时候,客户端便会自动携带这个cookie去请求服务器,服务器识别后,就会读取session中的用户信息,这样用户就可以直接访问,就不需要再输入用户名密码来验证身份了。

优缺点: 优点是:提升了用户体验,cookie和session的结合使用,比直接在客户端保存用户信息要相对安全;

缺点是:当服务器向浏览器传送cookie的时候,很容易被劫持,并不是绝对的安全,还有一点就是,在大型的项目中,服务器往往不只一台,如果第一次请求,用户信息被保存在了服务器1的session空间中,但是第二次请求被分流到了服务器2,这样就获取不到用户信息了,依然要重新登录,还有如果时手机端不支持session也无法使用之, 所以又引出了另一种方法:token来实现。

第二种,使用token安全令牌
实现原理:当用户请求页面,输入用户信息,服务端经过验证后,会生成一个token安全令牌(随机字符串),并返回给客户端,当客户端发送下一次请求的时候,直接携带这个token,服务端识别后,就可以直接访问页面,不需要再次登录了
优点:token只是以字符串的形式存在,不要服务器再开辟空间,并且相对更安全,即使在传输的过程中被劫持,别人也并不能破解内容,并且减少了服务器压力,减少频繁的查询数据库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值