cookie和session、token

总结:

相同点:

都是用于鉴权,由服务器产生。

不同点:

cookie存储在客户端,session存储在服务器内存,token存储在服务器硬盘。

session和token的安全性比cookie更高。

token比session更节省资源,不需要管理sessionid。

1、HTTP协议

http是超文本传输协议,主要是客户端和服务器之间交互数据,交互分为请求和响应两部分。

(“超文本”是超级文本的中文缩写。超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。超文本更是一种用户界面范式,用以显示文本及与文本之间相关的内容。)

请求:

请求行:请求方式(GET POST) 请求路径(hao123_上网从这里开始) 协议(HTTP/1.1)

请求头:GET /vpbx.cgi?action=login HTTP/1.1 Host: 192.168.10.210 Connection: keep-alive Accept: */* X-Requested-With: XMLHttpRequest User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36 Content-Type: application/json;charset=UTF-8 Referer: http://192.168.10.210/login.html Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9

中间空一行

请求正文:

响应:

响应行:协议(HTTP/1.1) 响应信息(200 OK)

响应头:HTTP/1.1 200 OK Content-type: application/json Accept-Ranges: bytes Content-Length: 41 Date: Mon, 23 May 2022 02:12:38 GMT Server: lighttpd/1.4.63

响应正文:

http协议默认使用80端口

https = http + ssl安全传输协议,端口是443

特点:简单、快捷,无连接无状态,指的是多个请求之间是没有关联的,独立的。

实例:登录,搜索,下单,支付,评论。都是相互独立的。

http不具备记录状态的功能,就不知道是否是同一个用户是否进行了登录,搜索,下单、支付等功能。

所以发明了cookie就是用于解决http协议多个请求之间无连接的场景。

二、Cookie以及Cookie鉴权的原理和实战

1、Cookie是什么?

Cookie服务器产生的保存在客户端的一小段文本信息。格式是字典格式,键值对。

(1)、会话级Cookie:保存在内存,当浏览器关闭会自动消失。

(2)、持久化Cookie:保存在硬盘,当浏览器关闭不会自动消失,他的生命周期取决于失效时间。

2、如何查看Cookie?(保存在客户端)

(1)、F12直接可以查看。

可以看到作用于服务器的哪个路径

3、Cookie鉴权如何实现的?

第一步:客户端第一次访问服务器时生成Cookie,通过响应头中Set-Cookie传输到客户端,然后在客户端保存。

第一步:客户端第2-N次访问服务器时,在请求头里会自动带上客户端保存的Cookie,然后和服务器的Cookie进行比较,实现鉴权。

4、Cookie的缺点

服务器生成保存在客户端,对于一些重要信息,用户名,密码通过cookie保存并不安全。

能不能把重要的数据保存到服务器,把不重要的数据保存到Cookie。

三、Session以及Session鉴权的原理和实战(保存在内存中)

1、Session如何实现鉴权?

第一步:当客户端登录服务器的时候,服务器生成sessionid并且保存到服务器,通过登录请求的响应头里面把sessionid通过Cookie传输给客户端。

第二步:后面所有的请求都会在请求头Cookie里面带上sessionid,然后服务器的sessionid进行对比实现鉴权。

sessionid默认生命周期是半个小时,半小时后会换sessionid。

如果服务器访问量过大,生成的sessionid过多,服务器承载不下了,session满足不了需求,出现了token。

四、token以及token鉴权的原理和实战(保存在硬盘)

token:令牌,鉴权码。

第一步:一般是登录后自动生成以一个token或者通过一个单独的接口来生成token,然后保存在服务器的硬盘,一般保存在服务器的数据库。

第二步:后面的请求都必须带上token(请求头,参数里面都可以放token),然后和服务器的token对比实现鉴权。

token可能会被截取,所以进行加密。

四、加密

对称加密:DES,AES 可以解密

双钥加密:AES 可以解密

MD5、SHA1 不可以解密

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值