作者好懒,好久没发表文章了,那今天就来一发?
在技术面试中,我们经常会遇到这样的问题,cookice和session 的区别? 那么这2者到底是干嘛的?
在客户端浏览器向服务器发送请求,服务器做出响应之后,二者便会断开连接(一次会话结束)。那么下次用户再来请求服务器,服务器没有任何办法去识别此用户是谁
cookie可以向服务器证明用户身份 ,我们的web系统中是不是需要将用户的详细信息储存在某个位置供页面调用呢?用户的详细信息就包括姓名,年龄,性别等信息。而cookie是存在于客户端的,将用户详细信息通过网络发送到客户端保存是极不安全的。且cookie大小不能超过4k,不能支持中文。这就限制cookie不能满足存储用户信息的需求。这就需要一种机制在服务器端的某个域中存储一些数据,这个域就是session。
总而言之,cookie/session的出现就是为了解决http协议无状态的弊端,为了让客户端和服务端建立长久联系而出现的。
简单的说,
1、Cookie和Session都是会话技术,Cookie是运行在客户端,Session是运行在服务器端
结合上述的知识点,那么我们是否可以通过cookie 实现免密登录呢? 不妨我们来测试一下?
环境准备:
## 一、python环境
brew安装。或者是官网下载安装包,直接装都行
二、selenium
pip3 install selenium 【不加版本默认下载最新版】
如果遇到网络报错就加个国内的镜像
pip3 install selenium -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
三、下载浏览器的driver驱动
注意事项: selenium3.x版本开始不再提供默认浏览器支持,所有浏览器都是通过各个浏览器官方提供相应的浏览器驱动进行支持,这使得运行在各种浏览器上的自动化测试更稳定。
1.下载的版本和浏览器位数,取决于你使用的操作系统的类型和位数(64bit或32bit),虽然浏览器的版本位数和操作系统的位数没有映射关系,但是为了防止出现驱动浏览器的问题,建议尽量保持版本一致。
2.浏览器的版本和驱动版本存在映射关系,下载使用时需注意,如果两个版本不匹配selenium将无法驱动浏览器
实战:(上代码)
方法一:
首先我们进行手动登录拿到cookies, 并打印出来,拿到登录信息后,在添加到进去,就可以实现我们的登录了。
方法二:
以某东为例
这么多信息,你一条条的添加,岂不累死? 那么方法二来了
方法二:
以json 形式存储在本地到一个文件当中, 来,我们继续看代码
当然用这种方法别忘记在前面加上!
import json