Cookie/Session/token鉴权

网络分层:

OSI 网络参考模型 TCP/IP协议簇
7 应用层DNS、HTTP、SSH、SMTP、FTP...5 应用层
6 表示层
5 会话层
4 传输层TCP、UDP、SCTP4 传输层
3 网络层

IPv4、IPv6、ARP、ICMP

3 网络层
2 数据链路层以太网(Ethernet)、无线LAN2 数据链路层
1 物理层光纤、双绞线电缆、无线设备1 物理层

 

HTTP协议

常用请求头:

Content-Type:请求的报文格式

Accept:客户端接收的数据类型

User-Agent:发送请求的客户端类型

X-Request-with:Ajax请求,异步请求

Cookie:请求携带的Cookie信息

常见响应头:

Set-Cookie:服务器返回给客户端的Cookie信息

 

一、Cookie以及Cookie鉴权原理

1.什么是Cookie?

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

类型:

会话级Cookie:

持久化Cookie:

 

2.Cookie查看方式

查看单个项目:F12 --> application --> Cookies

查看本地所有:浏览器设置 --> 隐私设置和安全性 --> Cookie及网站数据 --> 查看所有的Cookie和网站数据

name:名称

value:值

Domain:作用的服务器地址

path:作用的路径

Expries:声明周期

Size:大小

 

3.Cookie鉴权原理

如何判断有Cookie鉴权?

只有多个请求之间有相同的Cookie,那么必然存在Cookie鉴权

 

鉴权步骤:

        1.客户端第1次访问服务器的时候,服务器会生成Cookie,然后通过响应头里面的Set-Cookie传输到客户端,然后保存。

        2.客户端第2-N次访问服务器时,在请求头里面通过Cookie把我们保存在本地的Cookie信息传输到服务器以实现鉴权。

 

4.对于测试有什么用

Postman:自动的保存和发送Cookie

        Bug场景:接口地址,接口参数,请求方式,请求头全对,但是返回错误,可以清除postman的Cookie缓存。

Jmeter:对于web项目的接口有一个不用的组件:HTTP Cookie管理器。此组件的作用和浏览器自动保存Cookie以及自动填写的Cookie的作用一模一样的。

 

接口自动化requests:手动关联。

 

致命的缺点:不安全;一般Cookie保存的是一些不重要的数据

 

二、Session以及Session鉴权原理

session叫会话

 

1.session如何实现鉴权?

鉴权步骤:

        1.客户端登录访问服务器的时候,服务器会生成Session,一般用sessionID表示,然后通过响应头里面的Set-Cookie传输到客户端,然后保存。所有的sessionID全部是会话级。session是通过cookie传输。

        2.客户端第2-N次访问服务器时,在请求头里面通过Cookie把我们保存在本地的Sessionid信息传输到服务器以实现鉴权。

 

2.对于测试有什么作用

功能测试:当session失效(登录状态失效)之后系统的反应。session默认的生命周期是半小时,

解决方案:改中间件的配置文件。Tomcat / conf.xml,web.xml

<timeout-session>时间</timeout-session>

接口自动化测试:sess = requests.session();        它可以自动的关联cookie鉴权。

 

缺点:

        session保存在服务器,占用服务器的内存。

 

三、Token以及Token鉴权原理

token:鉴权码

 

1.token如何实现鉴权

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

第二步:后面所有的请求都必须在请求头里面或者请求参数里面带上token实现鉴权。

 

token一般是经过加密,并且是有生命周期。

token一般有两类:

1.assess_token:生命周期在15分钟-2小时之间。

2.refresh_token:生命周期是15天。

 

加密:

对称加密算法:DES,AES,Base64

双钥加密:RSA

只加密不解密:MD5,SHA

自定义的加密方式:混合加密

 

 

面试题:cookie,session,token的相同点和区别是什么?

相同点:都是用于鉴权,都是服务器生成的;

不同点:

        cookie保存客户端,session保存在服务器的内存,token保存在服务器的硬盘

       cookie一般保存不重要的信息,session一般保存登录等重要的信息,token只用于鉴权。

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值