信阳住房和城乡建设局网站,建一个公司网站需要几天,建设一个跟京东一样的网站,网络营销的4p策略以下介绍cookie、session原理及在接口自动化中的应用。 HTTP 协议是一种无状态协议#xff0c;即每次服务端接收到客户端的请求时#xff0c;都是一个全新的请求#xff0c;服务器并不知道客户端的历史请求记录#xff1b;Session 和 Cookie 的主要目的就是为了弥补 HTTP 的… 以下介绍cookie、session原理及在接口自动化中的应用。
HTTP 协议是一种无状态协议即每次服务端接收到客户端的请求时都是一个全新的请求服务器并不知道客户端的历史请求记录Session 和 Cookie 的主要目的就是为了弥补 HTTP 的无状态特性。 如果我们测试的接口有依赖关系怎么办呢比如购物支付时需要先登录这时我们就要用到cookie和session技术来保持客户端与服务器端连接的状态。 一、cookie
1.cookie介绍
cookie是服务器发送到用户浏览器并保存在本地的一小块数据它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常它用于告知服务端两个请求是否来自同一浏览器如保持用户的登录状态。 2.cookie原理
① Cookie技术会根据从服务器端发送的响应报文内的一个叫做Set-Cookie的首部字段信息通知客户端保存Cookie。 ② 客户端再向服务器端发送请求的时候客户端会在请求报文中加入Cookie值后发送出去。服务器端会检查客户端发送的请求中有没有Cookie值然后对比服务器上的记录最后确定是哪一个客户端之前的信息状态是什么。 这样一来服务器就能够分辨出发送请求的客户端究竟是哪一个了。
现在我也找了很多测试的朋友做了一个分享技术的交流群共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源没人解答问题坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化性能安全测试开发等等方面有一定建树的技术大牛
分享他们的经验还会分享很多直播讲座和技术沙龙
可以免费学习划重点开源的
qq群号691998057【暗号csdn999】 二、session
1.session介绍
session是一种在服务端记录用户信息的技术是在无状态的HTTP协议下服务端记录用户状态时用于标识具体用户的机制。它是在服务端保存的用来跟踪用户的状态的数据结构可以保存在文件、数据库或者集群中。
2.session原理 Session是存放在服务器端、用来存放用户数据的类似于HashTable结构。当浏览器第一次发送请求时服务器自动生成了一个HashTable和一个Session ID用来唯一标识这个HashTable并将其通过响应发送到浏览器。当浏览器第二次发送请求会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上服务器从请求中提取出Session ID并和保存的所有Session ID进行对比找到这个用户对应的HashTable以此来达到共享数据的目的。 三、cookie和session区别 1. 存储位置不同Cookie是将用户数据通过加密的方式保存在客户端大多数情况Cookie存储在浏览器Session是用于控制客户端和服务端的连接Session存储在服务器
2. 存储容量不同单个Cookie保存的数据不得超过4kb一个站点最多20个CookieSession一般情况下没有上限不过建议不要存放太多东西否则影响性能
3. 存取方式不同Cookie只能用ASCII字符串通过编码方式获取Unicode字符或者二进制数据不好存储复杂的信息而Session能存储任何类型的数据
4. 隐私策略/安全性不同Cookie放在客户端可以进行Cookie欺骗所以不安全Session放在服务端更加安全
5. 有效期不同Cookie可以设置属性达到长期有效Session依赖于JSESSIONID的CookieCookie JSESSIONID的过期时间默认为-1只需要关闭窗口Session就会失效就算不依赖Cookie用UrL重写也不能完成如果Session超时时间过长容易导致内存溢出
6. 服务器压力不同Cookie保存在本地不存在服务端压力Session保存在服务端每个用户产生一个Session当访问增多会比较占用服务器的性能如果主要考虑到减轻服务器性能方面应当使用Cookie。 现在有登录、充值两个接口在未登录时直接调用充值接口。
import requests
url http://127.0.0.1:8000/recharge
payload {mobilephone:1530272****,amount:100
}
recharge_res requests.post(url,datapayload)
print(recharge_res.json()) 请求结果提示请先登录。
{status: 0, code: None, data: None, msg: 抱歉请先登录。} 这时候今天的主角cookie和session闪亮登场了。 四、cookie应用 import requests# 登录接口
url http://127.0.0.1:8000/user/login
payload {mobilephone:1530272****,pwd:123456
}
login_res requests.post(url,datapayload)
print(login_res.json())
# 获取响应结果的cookies
cookies login_res.cookies
print(cookies)# 充值接口
url http://127.0.0.1:8000/recharge
payload {mobilephone:1530272****,amount:100
}
# 充值接口请求时携带cookies
recharge_res requests.post(url,datapayload,cookiescookies)
print(recharge_res.json())五、session应用
import requests# 登录接口
url http://127.0.0.1:8000/user/login
payload {mobilephone:1530272****,pwd:123456
}
# 创建session会话管理
session requests.session()
login_res session.post(url,datapayload)
print(login_res.json())# 充值接口
url http://127.0.0.1:8000/recharge
payload {mobilephone:1530272****,amount:100
}
recharge_res session.post(url,datapayload)
print(recharge_res.json())总结本文主要介绍cookie、session原理及在自动化过程中如何利用cookie、session保持会话状态。 下面是配套资料对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你 最后 可以在公众号程序员小濠 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
如果我的博客对你有帮助、如果你喜欢我的博客内容请 “点赞” “评论” “收藏” 一键三连哦