Cache、Cookie、Session、Token 傻傻分不清楚

2024-03-26 00:38

本文主要是介绍Cache、Cookie、Session、Token 傻傻分不清楚,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

协议是什么

在接口测试中,客户端发送的request至服务端反馈的response中传输的数据就是接口测试最重要的部分

Cache是什么

打开浏览器或者应用的时候,用户的等待时间叫做响应时间,打开速度影响到用户体验,提高反应速度的一个方法就是使用缓存策略,缓存策略能带来什么好处呢?

1.减少延迟:因为网页请求指向的是更接近的客户端缓存,而不是资源服务器,所以花费的时间更短,提高用户体验

2.降低网络负荷:因为缓存可以重复使用,节省带宽,降低网络负荷,也就可以更加节省用户的流量

缓存一般分为以下几种:

1.浏览器缓存    

(缓存在本地)

2.代理缓存     

(缓存在网络路由,也就是共享缓存)

3.网关缓存      

(缓存在CDN)

缓存策略一般分两种情况:

1.强缓存    

(直接在本地缓存中读取资源)

2.协商缓存    

(通过服务器告知是否能用本地缓存,先和服务器协商,如果可以,就从本地缓存中读取。如果不可以,就返回最新的资源)

Cookie

Cookie的内容是保存一小段文本信息。组成一个通行证,用来处理客户端无状态协议的一种解决方案

Cookie使用原理如下:

1.用户会提供信息提交给服务器

2.服务端向客户端回传相应数据的同时,也会发回Cookie

3.客户端接收到服务器相应后,浏览器将Cookie保存在同一个位置

4.客户端向服务端发送请求的实话,会把Cookie再次发回服务端

获取Cookie的途径

1.浏览器自带的开发工具或者抓包工具(Fiddler,Charles)

2.本地获取(ie的路径为C盘appdata/Microsoft/Windows/Cookies,Firefox位于C盘appdata/Mozilla/Firefox/Profiles,Charome位于C盘appdata/Goole/Chrome/User Date /Default)

3.js代码查看(浏览器地址栏输入Javascript:alert(document.cookie))

Session是什么

Session是另外一种记录用户状态的机制,不同于Cookie的是Session是保存在服务器上,用来解决服务端对无状态协议

Session的传输步骤

1.服务端创建Session,并创建唯一的id

2.服务器将id发给客户端

3.客户端再次发送请求的实话带上Session的id

4.服务器接收到请求后根据Seesion的id找到相应的Session,完成相应

Session的传输媒介

1.通过Cookie传输

2.通过URL地址重写

很多同学不知道Session和Cookie的区别,那么我来大概讲解一下我理解的

1.存储位置不同:大多数情况Cookie存储在浏览器,Session存储在服务器

2.存储容量不同:单个Cookie保存的数据不得超过4kb,一个站点最多20个Cookie,Session一般情况下没有上限,不过建议不要存放太多东西影响性能

3.存取方式不同:Cookie只能用ASCII字符串。通过编码方式获取Unicode字符或者二进制数据。不好存储复杂的信息,Session能存储任何类型的数据

4.隐私策略不同:Cookie放在客户端,可以进行Cookie欺骗,所以不安全。Session放在服务端,更加安全

5.有效期不同:Cookie可以设置属性达到长期有效,Session依赖于JSESSIONID的Cookie,Cookie JSESSIONID的过期时间默认为-1,只需要关闭窗口Session就会失效,,就算不依赖Cookie,

用UrL重写也不能完成,如果Session超时时间过长,容易导致内存溢出

6.服务器压力不同:Cookie保存子本地。不存在服务端压力。Session保存在服务端,每个用户产生一个Session,并发过多非常占用内存

7.浏览器支持不同:如果浏览器禁用Cookie,那么Cookie直接失效。Session比较好点。可以用URL重写

8.跨域不同:Cookie支持跨域访问,Session不支持跨域

Token是什么:

1.当客户端第一次请求的实话,发送用户信息到服务端,服务器对用户信息使用HSA256算法以及密钥进行签名,再将这个签名和数据一次作为Token返回给客户端

2.服务端不保存Token,客户端保存Token

3.客户端再次请求的实话,将Token发送给服务端

4.服务端同样用HSA256算法和同样的密钥对数据再一次计算签名,和Token中的签名做比较(如果相同,直接登录,不相同,登录失败)

脚本:猪圈子

图片:猪圈子

来源:猪圈子


 / END.

猪圈子

微信号:shichaogg

推荐理由:

致力于python爬虫系列及其他python相关经典好文集中地,以及程序员娱乐生活圈趣事分享(小编从业测试岗位四年SAAS平台+一年电商平台测试相关工作)积极分享趣事的90后免费领取学习资料 ,关注后,后台回复"抓包"测试"python"

▼长按下方↓↓↓二维码识别关注

搜索微信:shichaogg 

部分图片来源于网络,如有侵权请联系小编删除


分享他人在看↓↓

这篇关于Cache、Cookie、Session、Token 傻傻分不清楚的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/846785

相关文章

JavaScript中document.cookie

“某些 Web 站点在您的硬盘上用很小的文本文件存储了一些信息,这些文件就称为 Cookie。”—— MSIE 帮助。一般来说,Cookies 是 CGI 或类似,比 HTML 高级的文件、程序等创建的,但是 javascript 也提供了对 Cookies 的很全面的访问权利。       每个 Cookie 都是这样的:<cookie名>=<值>   <cookie名>的限制与 javasc

Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.B

一个bug日志 FATAL EXCEPTION: main03-25 14:24:07.724: E/AndroidRuntime(4135): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.syyx.jingubang.ky/com.anguotech.android.activity.Init

SIGMOD-24概览Part7: Industry Session (Graph Data Management)

👇BG3: A Cost Effective and I/O Efficient Graph Database in ByteDance 🏛机构:字节 ➡️领域: Information systems → Data management systemsStorage management 📚摘要:介绍了字节新提出的ByteGraph 3.0(BG3)模型,用来处理大规模图结构数据 背景

flask-login 生成 cookie,session

flask-login 生成 cookie,session Flask-Login login_user() 显示来自 Set-Cookie 标头的加密 cookie # 模拟一个用户类class User(UserMixin):def __init__(self, id):self.id = id@app.route('/login')def login():# 模拟用户登录过程user

【NodeJS】Unexpected token (109:0) 返回错误码500

刚开始报错是这样的: Unexpected token call 是什么我没看懂,但我发现 span.label.lable-success 后面的 #[i+1] 写错了,应该是 #{i+1} 改成完这个错误后又是一个错误提示: What? Unexpected token (109:0) 返回错误码500是什么鬼 我先将自己这段源码的 - if ... - else 检查下

解决OAuth Token,点击退出登录报404问题

首先,认证服务器发送请求 http://auth.test.com:8085/logout?redirect_uri=http://admin.test.com:8080’ 退出后报404无法跳转到网站首页,这个时候增加一个参数redirect_uri指定退出成功后跳转的路径,因为是自定义的,所以需在认证服务器做一些处理 找到源码默认实现接口DefaultLogoutPageGeneratingF

OAuth2 Token实现授权码模式

文章目录 OAuth2 授权:Resource owner password(密码模式)OAuth2 授权:Authorization code grant授权码模式,适用于浏览器模式OAuth2:Implicit(简化授权模式)OAuth:Client credentials(客户端证书)授权码模式使用案例 OAuth2 授权:Resource owner password(密

记一次knife4j文档请求异常 SyntaxError: Unexpected token ‘<‘, ... is not valid JSON

knife4j页面报错问题定位 前几天开发新接口,开发完成后想使用knife4j测试一下接口功能,突然发现访问页面报错提示:knife4j文档请求异常,但之前运行还是正常的,想想会不会与升级依赖有关系,启动其他微服务发现文档接口访问正常,排除因依赖版本升级导致在线API文档无法使用情况,还是和本服务新增接口有关系。 定位问题 首先f12打开调试台,重新刷新页面,看到console有报错提示

Session用法详解

本文引用http://www.accdb.net/article.asp?id=1115 阅读本文章之前的准备   阅读本文章前,需要读者对以下知识有所了解。否则,阅读过程中会在相应的内容上遇到不同程度的问题。   懂得ASP/ASP.NET编程    了解ASP/ASP.NET的Session模型    了解ASP.NET Web应用程序模型    了解ASP.N

[项目][CMP][Thread Cache]详细讲解

目录 1.设计&结构2.申请内存3.释放内存4.框架 1.设计&结构 Thread Cache是哈希桶结构,每个桶是一个按桶位置映射大小的内存块对象的自由链表 每个线程都会有一个Thread Cache对象,这样每个线程在这里获取对象和释放对象时是无锁的 TLS – Thread Local Strorage Linux gcc下TLSWindows vs下TLS