认识Token和Cookie

1、token和cookie有什么区别?

​ 1.1 存储位置及方式:Cookie是浏览器用来存储本地信息的文件,有一定的存储限制,而Token是由服务器按一定算法生成的密令,可以由前端指定存放到localStorage、sessionStorage或cookie中。

​ 1.2 功能特性:每次浏览器发起HTTP请求都会自动携带Cookie内容一起发送给服务器,而Token严格来说只是程序员定义的字符串,没有任何自主功能,所以浏览器发起的HTTP请求不会自动携带Token字符串。

​ 1.3 Token相对于Cookie机制的优势在于支持跨域访问,在服务端不需要存储session信息,因为Token 自身包含了所有登录用户的信息。此外,Token也不依赖于Cookie,所以不需要考虑对CSRF(跨站请求伪造)的防范。

​ 1.4 生命周期:当用户登出后,Cookie会注销,而Token不会,因为是一个字符串,但可以手动增加相关操作去实现这个功能。

2、token和cookie使用场景?

​ 2.1 Token主要用于身份验证和授权。在单页面应用程序(SPA)和Web API中,Token被广泛使用以确保用户身份的安全性和授权的准确性。例如,在用户登录后,服务器通常会生成一个Token并将其发送给客户端。客户端在后续的请求中将该Token发送回服务器,服务器验证Token的有效性并据此授予用户相应的权限。

​ 2.2 Cookies则主要用于跟踪用户状态和提供连续的服务。例如,在购物车功能中,Cookie可以存储用户的购物车信息,以便用户在浏览不同页面时保持商品选择。另外,Cookies还可以用于实现“记住我”功能,即允许用户在登录后无需每次都输入用户名和密码。

3、token和cookie的生命周期

​ Token的生命周期由服务器设置,一般取决于具体的应用和安全需求。Token在服务器端生成,并发送给客户端。在后续的请求中,客户端将Token发送回服务器,服务器验证Token的有效性并据此授予用户相应的权限。Token的安全性较高,因为它们存储在服务器端,并且通常会设置有效期和访问权限限制。在达到有效期或访问权限被限制时,Token会被服务器端销毁或过期,需要重新生成。

​ Cookies的生命周期则由浏览器设置,取决于用户的浏览器设置和Cookie的有效期。当用户关闭浏览器时,所有的Cookie通常会被清除。但是,在某些情况下,如“记住我”功能或购物车功能,Cookies可能会被设置为持久化,即浏览器关闭后仍然可以保留一段时间。Cookies的生命周期也可以由服务器设置,通过设置Cookie的maxAge属性来控制其有效期。一旦Cookie过期或被删除,它将不再被浏览器发送到服务器。

​ 需要注意的是,由于Cookie存储在客户端并且可能被拦截或篡改,因此它们的安全性相对较低。在处理敏感信息(如身份验证信息)时,建议使用Token或其他更安全的方式。

4、如何获取cookie?

​ 4.1 python代码

# 通过session对象获取cookie
def get_cookie_api():
session = requests.session()
get_url = 'https://cooperation.uniontech.com/wwwapi/Login/MDAccountLogin'
data = {
"password": "tPH1iyV+/FcFH9neCkjzNnuKSxKOSNU94DGp2r10oZn5YR3Wl+aihum9PBeTeMoPuwU"
"/cFLzQW4IlBLkz5S3DhvwBBmvXg6jxkXwccDp5nMPr2L6PwCNW1soqIEWP1W2ylBAfJi"
"CBeN2K36UXckqWQ63dH5tUi1CwNAcSrGoI5M=",
"isCookie": False,
"captchaType": 1,
"account": "Io9tZtaCE6R4yfpRrLFV6azDjpXKUCjNdjOeIOI32y9bVYHfOUA+iZUXFRKQSvszFN7i0"
"Meyvr5wgurnWy/9fI4/MZn4cIzM+MPUqUcZyqbE82n1i0EaWpl6jpNwBjX7XDOyjSyGhBD"
"m3X2ejKVghWHwgdLqEugi6+rOSTnJiaw="
}
headers = {"content-type": "application/json"}
session.post(url=get_url, json=data, headers=headers)
cookie = session.cookies.get_dict()
for key, values in cookie.items():
cookie = key + "=" + values
return cookie # 在headers中获取cookies信息
def get_cookies():
url = 'https://xxxxxxx.com/wwwapi/Login/MDAccountLogin'
data = {
"password": "tPH1iyV+/FcFH9neCkjzNnuKSxKOSNU94DGp2r10oZn5YR3Wl+aihum9PBeTeMoPuwU"
"/cFLzQW4IlBLkz5S3DhvwBBmvXg6jxkXwccDp5nMPr2L6PwCNW1soqIEWP1W2ylBAfJi"
"CBeN2K36UXckqWQ63dH5tUi1CwNAcSrGoI5M=",
"isCookie": False,
"captchaType": 1,
"account": "Io9tZtaCE6R4yfpRrLFV6azDjpXKUCjNdjOeIOI32y9bVYHfOUA+iZUXFRKQSvszFN7i0M"
"eyvr5wgurnWy/9fI4/MZn4cIzM+MPUqUcZyqbE82n1i0EaWpl6jpNwBjX7XDOyjSyGhBDm3"
"X2ejKVghWHwgdLqEugi6+rOSTnJiaw="
}
headers = {"content-type": "application/json"}
response = requests.post(url, json=data, verify=True, headers=headers)
# print(response.json())
headers_cookie = response.headers.get('Set-Cookie')
print(headers_cookie)
cookies = headers_cookie.split(';')[3].split(',')[1]
return cookie

​ 4.2 postman_api接口获取

​ 4.3 apifox_api接口获取

认识Token和Cookie的更多相关文章

  1. Token ,Cookie和Session的区别

    在做接口测试时,经常会碰到请求参数为token的类型,但是可能大部分测试人员对token,cookie,session的区别还是一知半解. Cookie cookie 是一个非常具体的东西,指的就是浏 ...

  2. 七、vue中将token存到cookie

    使用js-cookie工具: 1.npm i js-cookie //安装2.import Cookies from 'js-cookie' //引用 // 存入cookie:Cookies.set( ...

  3. Token ,Cookie、Session傻傻分不清楚?

    作者 | 王菜鸟1993 来源 | cnblogs.com/JamesWang1993/p/8593494.html 在做接口测试时,经常会碰到请求参数为token的类型,但是可能大部分测试人员对to ...

  4. 前后端分离 token和cookie对比

    HTTP协议本身是无状态的,所以需要一个标志来对用户身份进行验证 1.cookie 用户登录成功后,会在服务器存一个session,同时发送给客户端一个cookie,这个cookie里面有唯一标识该用 ...

  5. Token 、Cookie和Session的区别

    本文转至http://blog.csdn.net/tobetheender/article/details/52485948 https://blog.csdn.net/axin66ok/articl ...

  6. 关于Token和Cookie做权限校验的区别及Token自动续期方案

    title: 关于Token和Cookie做权限校验的区别及Token自动续期方案 categories: 后端 tags: - .NET Token和Cookie的区别 首先,要知道一些基本概念:h ...

  7. token解决cookie的弊端

    token解决cookie的弊端 目录 token解决cookie的弊端 cookie的弊端 token解决弊端一 什么是token和JWT JWT的构成 token工作流程 token解决弊端二 C ...

  8. 快速理解Token,Cookie,Session

    在Web应用中,HTTP请求是无状态的.即:用户第一次发起请求,与服务器建立连接并登录成功后,为了避免每次打开一个页面都需要登录一下,就出现了cookie,Session. Cookie Cookie ...

  9. Java Web 开发必须掌握的三个技术:Token、Cookie、Session

    在Web应用中,HTTP请求是无状态的.即:用户第一次发起请求,与服务器建立连接并登录成功后,为了避免每次打开一个页面都需要登录一下,就出现了cookie,Session. Cookie Cookie ...

  10. 简单说明一下Token ,Cookie,Session

    在Web应用中,HTTP请求是无状态的.即:用户第一次发起请求,与服务器建立连接并登录成功后,为了避免每次打开一个页面都需要登录一下,就出现了cookie,Session. Cookie Cookie ...

随机推荐

  1. AI五子棋_06 坐标表示到图形表示的算法 Python实现

    AI五子棋 第六步 恭喜你到达第六步! 你已经成功实现了公钥体系最为关键的部分.现在服务器相信你就是你了,下面开始你的战斗. 五子棋的棋盘有15×15个交点,一共有225个交点,我们可以在每一个交点上 ...

  2. 【小记】Docker容器间SSH公钥自动交换实现免密登录的一次尝试

    咋想到这茬了 最近开始忙毕设的事儿了,想部署个伪分布式的Spark + Hadoop集群来进行测试.思来考去,最终咱把目光放在了Docker上. 盘了两天,发现这玩意意外的有趣,镜像构建好后开箱即用, ...

  3. 如何看待:以色列在真主党订购的5000台寻呼机中放了TNT

    日常生活等关键物品的生产必须要有国内完全掌握,美国.日本.以色列等国惯用的这种暗杀方法.如果不能在本国国内做到自主可控的产品生产,那么无疑是把自己的脑袋交给敌人来保护,随时都有丢命的可能. 同时,这也 ...

  4. 焕然一新!TinyVue 组件库 UI 大升级,更符合现代的审美!

    你好,我是 Kagol,个人公众号:前端开源星球. 自从 TinyVue 组件库去年开源以来,一直有小伙伴反馈我们的 UI 不够美观,风格陈旧,不太满足现阶段审美. "TinyVue 给我的 ...

  5. js-xlsx 前段读取excel

    JavaScript读取和导出excel示例(基于js-xlsx) 放入参考链接 http://demo.haoji.me/2017/02/08-js-xlsx/ github官网 https://g ...

  6. 高德地图API-搜索提示并定位到位置,卫星地图和标准地图的切换

    // _yourMap地图实例 _yourMap.plugin(["AMap.MapType"], function () { //添加地图类型切换插件 //地图类型切换 mapT ...

  7. Metal 开发教程(二)

    https://developer.apple.com/documentation/quartzcore/cametallayer?language=objc#3385893 CAMetalLayer ...

  8. git 暂存区问题

    如果需要合别人的代码进来 需要暂时把自己的代码stash一下,用 git stash 放入暂存 如果需要释放出来用 git stash pop 当暂存用的越来越多,问题出现了需要清理暂存区队列,使用代 ...

  9. MySQL原理简介—5.存储模型和数据读写机制

    大纲 1.为什么不能直接更新磁盘上的数据 2.为什么要引入数据页的概念 3.一行数据在磁盘上是如何存储的 4.一行数据中的NULL值是如何处理的 5.一行数据的数据头存储的是什么 6.一行数据的真实数 ...

  10. golang之路由库gorilla/mux

    gorilla/mux是 gorilla Web 开发工具包中的路由管理库.gorilla Web 开发包是 Go 语言中辅助开发 Web 服务器的工具包.它包括 Web 服务器开发的各个方面, 有表 ...