在本地怎么做网站,有没有淄博张店做兼职工作的网站,wordpress设置文章第一张,网页设计师考什么一#xff0c;理论知识
为什么有cookie和session#xff1f;
因为http协议是一种无状态的协议#xff0c;即每次服务端接受到客户端的请求时都时一个全新的请求#xff0c;服务器并不知道客户端的请求记录#xff0c;session和cookie主要目的就是弥补http的无状态特性
…
一理论知识
为什么有cookie和session
因为http协议是一种无状态的协议即每次服务端接受到客户端的请求时都时一个全新的请求服务器并不知道客户端的请求记录session和cookie主要目的就是弥补http的无状态特性
cookie
cookie是服务器发送到用户浏览器并保存到用户本地的一小块数据会在浏览器再下次向同一服务器再发起请求时被携带并发送到服务器上。通常用于告知服务端两个请求是否来自同一浏览器如保持用户的登录状态。
原理 Cookie技术会根据从服务器端发送的响应报文内的一个叫做Set-Cookie的首部字段信息通知客户端保存Cookie。
② 客户端再向服务器端发送请求的时候客户端会在请求报文中加入Cookie值后发送出去。服务器端会检查客户端发送的请求中有没有Cookie值然后对比服务器上的记录最后确定是哪一个客户端之前的信息状态是什么
session
session 是一种在服务端记录用户信息的技术在http无状态协议下服务端记录用户状态时用于标识具体用户的机制是在服务端保存的用来追踪用户状态的数据结构键值对可以保存在文件数据库或者集群中
Session是存放在服务器端、用来存放用户数据的类似于HashTable结构。
当浏览器第一次发送请求时服务器自动生成了一个HashTable和一个Session ID用来唯一标识这个HashTable并将其通过响应发送到浏览器。
当浏览器第二次发送请求会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上服务器从请求中提取出Session ID并和保存的所有Session ID进行对比找到这个用户对应的HashTable以此来达到共享数据的目的。
cookie和session的区别
1存储位置不同cookie是将用户数据通过加密的方式存储在客户端(大多数在浏览器)session存储在服务器用于控制客户端和服务端的连接
2存储容量不同cookie只能发ASCII码通过编码的方式获取Unicode字符或者二进制数据不能存复杂数据session能存任何类型的数据。
3安全性隐私策略不同cookie放在客户端可以进行cookie欺骗session放在服务端比较安全
4有效期不同cookie实际上可以设置属性达到长期有效记住历史登录expires/Max-Age 字段为此cookie超时时间。若设置其值为一个时间那么当到达此时间后此cookie失效。不设置的话默认值是Session意思是cookie会和session一起失效。当浏览器关闭(不是浏览器标签页而是整个浏览器) 后此cookie失效。
session依赖于JSESSIONID的cookieJSESSIONID过期时间默认为-1即关闭窗口就失效可以设置时间但是超时时间太长容易造成内存溢出
5对服务器的压力不同cookie保存在本地不存在服务器压力session保存在服务端每个用户都会产生一个session当访问增多会比较占用服务器的性能如果主要考虑减轻服务器性能压力应使用cookie。
python接口自动化中对cookie和session的处理方式
在python中有专门的一个类来处理cookie和session即Session类。类似于jmeter的cookie管理器。
import requests # 导入requests requests.Session() # 实例化一个request.Session类的对象print(登陆之前的cookies:,s.cookies) # 与登录之后的cookie对比一开始为空后面登录后就获取到了cookielogin_url https://www.ketangpai.com/UserApi/loginlogin_datas {email:198658759##,password:sdk93#####,remember:0}resp s.post(login_url, datalogin_datas) # 发送post请求登录获取cookie会自动添加到s对象中后续接口请求要用到cookie直接使用即可print(登陆之后的cookies:,s.cookies) # 主动会将响应的set-cookies添加到s对象当中。print(resp.json())userinfo_url https://www.ketangpai.com/UserApi/getUserInfo # 发送请求获取用户信息验证是否自动带上了cookieresp1 s.get(userinfo_url)print(resp1.json())最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你