搞懂Cookie Session Token 是什么

一.起源
18世纪: 浏览文档和产品的展示,静态页面,每次请求多是一个http请求 。
19-20世纪: 交互式web系统 ,需要登录,面临一个问题,那些热在自己的购物车里面加入了商品,需要把每个人做的动作区分,因为http请求是无状态的 。

1.Cookie
cookie是缓存吗? No

什么是cookie ?
cookie 是服务器产生的,保存在客户端的。
cookie的本质是保存在客户端的一个文本信息,格式是字典,键值对。
cookie的名称是由开发自定义的 。

cookie 的分类
会话级cookie: 保存在内存,当我们的浏览器关闭时就会自动失效
持久化的cookie :保存在硬盘,只有当他的失效时间到了才会失效
cookie的格式 :
{name:值 , value:值 , domain:作用域,path:路径 ,exprits:时间 ,siza :大小}

如何查看cookie
cookie的数据传输原理
客户端和服务器。基于http协议 。
请求头:cookie
当客户端在第二次和第N次请求服务器的时候,那么就会通过cookie 把信息传输到服务器。
响应头:set-cookie
当客户端第一次访问服务器的时候,那么服务器就会通过setcookie 把cookie 信息传给客户端,客户端拿到cookie之后保存
cookie 的作用
1.记住用户的登录状态,保持购物车的状态
2.主题和风格的个性化的设置

致命的缺陷 :因为我们的cookie保存在客户端,像用户名和密码保存在客户端很不安全

二. Session
当我们用户第一次登录之后,在服务器就会生成一个会话标识,sessionid, 并且保存在服务器的内存当中,默认生命周期是30分钟,然后这个sessionid会通过cookie发送给客户端,客户端只需要保存sessionid就可以了,并且我们的sessionid一般是通过会话cookie去保存和传输的。所有就安全很多。

服务器需要保存所有的sessionid
请求ip捆绑 session复制,单点登录。
单点登录的服务器也会崩溃 ,sessionid 可以别伪造

有没有更好的方案?

三 .Token

用户登录后,服务器生成了一个令牌,里面包含了userid ,保存在服务器的文本文档或者和数据库里面,然后通过表单的方式来传输,不是通过cookie,客户端和服务器之间的token验证有一个约定,这种约定是加密的,是人为的 。

加密:
对称加密解密 :DES AEX
双钥加密和解密:RSA
只加密不解密:MD5,SHA系列
约定客户端传输的cookie和服务器生成token对比

比如:金融项目 ,银行项目,第三方支付的项目等出现,加密和解密达不到安全的技术
签名和数字证书:主要用于接口测试 。
四cookie ,session ,token 的相同点和区别
相同点: 都是在服务器产生的,并且都是用于身份验证(鉴权)
不同点:cookie 是存储在客户端,而sessionid存储在服务器内存,默认30分钟 ,session的安全性比cookie高,所以会把重要的数据放到session里面,
2.session 保存在服务器的内存里,token保存在服务器的数据库,token的好处就是比session更加节约服务器的资源,服务器在收到token之后直接解密就可以了

五.他们在测试当中具体有哪些实际的作用
1.接口测试
(1) psotman,jmeter 有用过?
postman 自动管理cookie
jmeter.cookie 管理器
(2) 接口自动化
接口关联 :json解析器 正则表达式 cookie提取器
接口自动化:request.post(cookie=cookie)
2.web自动化
cookie万能验证码 :数字,加法,数字+字母,拖拽

你可能感兴趣的:(笔记,cookie)