Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >面试中的cookies、session、token

面试中的cookies、session、token

作者头像
FunTester
发布于 2023-08-04 03:26:58
发布于 2023-08-04 03:26:58
24000
代码可运行
举报
文章被收录于专栏:FunTesterFunTester
运行总次数:0
代码可运行

前言

一般在面试的时候,经常会被问到关于什么是cookies、session、token,大多数面试官可以通过这几个概念基本上了解到你对接口请求方面是否了解或者工作中掌握的熟练程度。

看似很小的问题,但是背后却藏着大大的阴谋,今天跟着小编一起来了解下到底什么是cookies、session、token。

http无状态

我们都知道目前的http的协议是超文本传输协议,是属于服务器传世超文本到本地浏览器的传送协议,但是很多都不清楚http的无状态是什么意思。

其实无状态协议就是类似客户端发送一次http请求完成后,客户端再次发送一次http请求后,http协议不清楚第一次发送的和第二次发送的协议是否属于同一个客户端,这个问题就引入了我们今天的话题,关于三者的区别。

cookies

cookies是一种在客户端存储用户信息的机制。

当用户登录网站时,服务器会生成一个新的cookie发送给客户端浏览器,浏览器会把这个cookies保存在对应的文件内,并要求客户端浏览器在后续请求中将cookie发送回服务器。服务器这个时候就会根据cookie的信息进行识别用户身份。

因为客户端存有cookies值,那么就会造成一些风险,可能会被他人窃取,所有cookies在客户端存放有时间限制,当时间到期后会自动消失,当用户下次再次登录时,又重新会生成新的cookies值。

cookie的格式显示

一般cookies会以键值对的形式进行显示如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{name=value; expires=date; path=path; domain=domain; secure}

(左右滑动查看完整代码)

其中:

  • name表示cookie的名称
  • value表示cookie的值
  • expires表示cookie的过期时间
  • path表示cookie的路径
  • domain表示cookie的域名
  • secure表示cookie是否只能通过安全的https连接传输

cookie存在问题

我们通过上面的了解cookie的内容,应该可以大致可以了解到cookie存在一些问题。

1、隐私问题:cookies会记录用户的个人信息和行为,会泄露给第三方用于投放广告或个人信息进行泄露。

2、安全问题:cookies本地端或浏览器上都可以很容易查到,很容易会被其他人盗用,造成一些数据损失或者安全损失。

3、体验问题:每个cookies多多少少都会存在一些大小限制,当我们访问的网站过多,就会存储不同的cookies,这样可能会影响到用户的浏览体验。

4、过期问题:每个网站对于账户的cookies过期时间设置都不一样,这样可能会导致用户登录信息进行泄露。

利用cookies可以做什么

就拿我们测试行业来说,在做自动化测试的时,保证cookies没有过期的前提下,可以将对应的cookies添加到浏览器中,或通过脚本语言进行模拟cookies发送给服务器,这样就能实现用户的登录。

这样对于我们自动化测试绕过了一些验证码和一些繁琐的过程。

session

session是一种在服务器端存储用户信息的机制。

当用户登录网站时,服务器会创建一个Session ID并将其存储在cookie中,然后将Session ID发送给客户端浏览器。客户端浏览器将Session ID存储在cookie中,并在后续请求中将其发送给服务器。服务器会根据Session ID可以识别用户身份,并将用户的数据存储在服务器端的session中。

session的格式显示

session的格式通常是已键值对的形似进行保存,每个键值对表示一个变量和对应的值,我们可以通过F12中在Storage中进行查看,当然每个session保存路径可能不一样。

session存在的问题

其实关于session也有一些存在的问题,小编简单介绍几种

1、安全性问题:session虽然存储在服务器端,但是session ID存储在客户端上,可以通过获取session ID进行模拟登录。

2、性能问题:session存在服务器的内存中,如果session的数量越来越大,会占用大量的服务器内存资源,从而降低了性能。

3、会话过期问题:session也有一定的有效期限制,当用户长时间不进行操作或者关闭浏览器,其中session就会过期,导致用户又需要重新登录。

利用session可以做什么

继续对于我们测试来说,可以通过session进行模拟登录,从而跳过验证码和一些繁琐的操作,直接模拟进入到登录后想要进入的页面当中。

token

token是一个用于验证用户身份的字符串,通常由服务器生成并返回给客户端。

在Web应用程序中,token通常是包含用户身份信息的加密字符串,可以用于验证用户在访问受保护的资源时是否有权限。token可以被用于各种场景,例如用户登录、API访问、密码重置等。

token的格式显示

token格式通常是一串由字母、数字和特殊字符组成的字符串,长度可以是任意的。一般token都是通过一些有效信息进行加密生成的字符串。

token存在的问题

1、过期问题:token存在一定的有效期限制,如果超过了有效期,就需要重新获取新的token,否则用户无法正常使用。

2、模拟登陆:通过了解token的实现机制,我们可以通过抓包后通过脚本语言模拟token生成,从而完成实现模拟登陆。

利用token可以做什么

token一般是通过加密的方式进行生成的,如果想要使用token,我们需要了解token的生成原理,然后通过一些脚本语言模拟token的生成过程,从而达到我们通过token模拟登录来做自动化测试。

总结

小编通过这么多的文字信息,大致介绍了cookie、session、token的内容和目前测试人员可以通过这些完成哪些操作,从而辅助我们进行工作。

我们日常生活中的接口测试中光登录其实就是通过这三个进行实现的。文章中太多的文字介绍,具体的还需要大家结合自己公司的项目进行了解,进行动手操作,这样才能更加得心应手。

感谢您的阅读,希望本文章可以对您带来帮助。

End

FunTester原创专题推荐~

-- By FunTester

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FunTester 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Cookie、Session、Token那点事儿
前言:新公司项目中使用到了Cookie,在各大Android技术讨论群向前辈们取经讨论这cookie、session、token这仨哥们的时候,很多开发者说法不一各抒已见,所以是时候回顾下http基础以及总结开发经验了。本文重在科普分析Cookie、Session、Token的基本概念和应用场景;Okhttp框架下对Cookie的管理使用。文章如果写的不好请各位开发者老司机私聊或者在评论区指点提出issue。
java思维导图
2018/07/26
1.7K0
Cookie、Session、Token那点事儿
Session和Cookies的基本原理
在浏览网站的过程中,我们经常会遇到需要登录的情况,有些页面只有登录之后才可以访问,而且登录之后可以连续访问很多次网站,但是有时候过一段时间就需要重新登录。还有一些网站,在打开浏览器时就自动登录了,而且很长时间都不会失效,这种情况又是为什么?其实这里面涉及Session和Cookies的相关知识,本节就来揭开它们的神秘面纱。 一、静态网页和动态网页 在开始之前,我们需要先了解一下静态网页和动态网页的概念。这里还是前面的示例代码,内容如下: <!DOCTYPE html> <html> <head>
崔庆才
2018/04/08
8970
Session和Cookies的基本原理
京东面试:说说Cookie、Session和Token的区别?
东子作为目前传统电商三巨头之一(其他还有阿里巴巴和拼多多),其面试题的难度也中规中矩,总体来说没有其他两家面试难度高,当然薪资也没有其他两家薪资高。
磊哥
2023/12/04
3470
京东面试:说说Cookie、Session和Token的区别?
面试被问到:Token ,Cookie、Session傻傻分不清楚?
原文链接:https://cnblogs.com/JamesWang1993/p/8593494.html
业余草
2019/12/03
1.1K0
Web 认证机制相关概念解析
在 Web 开发中,我们经常会遇到各种各样的认证机制的概念和名词,如 Cookies、Session、Token、SSO(Single Sign-On)和 OAuth 2.0 等,下面详细解释一下它们之间的联系与异同
蚂蚁蚂蚁
2024/04/01
2090
前后端分离中session问题的处理与设计
由于之前的项目都不是前后端分离的项目,cookie和session的处理也是较为简单的。而这次开发的项目是前后端分离并且采用vue+springboot技术实现,在实现登录功能的时候突然想到该怎么实现维护用户的状态信息。这里就记录一下相关的知识点概念以及我的解决方案,仅供参考。
魚迹
2023/05/06
2.4K0
还分不清 Cookie、Session、Token、JWT?
cookie 重要的属性属性说明name=value键值对,设置 Cookie 的名称及相对应的值,都必须是字符串类型
coder_koala
2020/02/20
1.1K0
还分不清 Cookie、Session、Token、JWT?
一文彻底搞懂cookie、session、token、jwt!
随着Web应用程序的出现,直接**在客户端上存储用户信息**的需求也随之出现。者背后的想象时合法的:与特定用户相关的信息都应该保存在用户的机器上。无论是登录信息、个人偏好、还是其他数据,Web应用程序提供者都需要有办法 将他们保存在客户端。对于这个问题,第一个解决方案就是cookie。
CODER-V
2023/03/02
4.8K1
一文彻底搞懂cookie、session、token、jwt!
Web基础技术 | Cookie、Session和Token认证
前言:HTTP是一种无状态的协议,为了分辨链接是谁发起的,需要浏览器自己去解决这个问题。不然有些情况下即使是打开同一个网站的不同页面也都要重新登录。而Cookie、Session和Token就是为了解决这个问题而提出来的两个机制
谢公子
2022/01/13
5890
Web基础技术 | Cookie、Session和Token认证
一文搞懂Cookie、Session、Token、JWT
在Web开发中,身份验证和会话管理是核心功能。本文将详细介绍Cookie、Session、Token和JWT这四种常用的技术,以及它们的使用场景和优缺点。
用户11397231
2024/12/23
4020
一文搞懂Cookie、Session、Token、JWT
Cookie/Session/Token 还傻傻分不清?
HTTP无状态协议,是指协议对于业务处理没有记忆能力,之前做了啥完全记不住,每次请求都是完全独立互不影响的,没有任何上下文信息。
小林coding
2021/09/22
4370
Cookie/Session/Token 还傻傻分不清?
简单理解Token机制
互联网发展到现在已经到了一个非常成熟的时代,所以不再是一个你写一个静态网站就可以进行疯狂盈利的时代了。现在对产品有着很多的要求,健壮性,安全性这些都是必不可少的。前两篇也说过了现在公司一般用户登录成功会给前端返回token,前端访问接口请求数据需要携带token进行身份验证。我们一直说token,那究竟什么是token?token其实就是一个令牌,是服务端生成的一串字符串,解析可以得到用户信息。
创译科技
2019/06/02
3.5K0
Session、Cookie、Token 【浅谈三者之间的那点事】
HTTP 协议是一种无状态协议,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器并不知道客户端的历史请求记录;Session 和 Cookie 的主要目的就是为了弥补 HTTP 的无状态特性。
IT茂茂
2020/09/24
22.2K1
Session、Cookie、Token 【浅谈三者之间的那点事】
Jwt,Token,Cookie,Session之间的区别
认证是关于验证你的凭据,如用户名/邮箱和密码,以验证访问者的身份。系统确定你是否就是你所说的使用凭据。在公共和专用网络中,系统通过登录密码验证用户身份。身份认证通常通过用户名和密码完成,有时与认证可以不仅仅通过密码的形式,也可以通过手机验证码或者生物特征等其他因素。
程序员Leo
2023/11/17
9790
Jwt,Token,Cookie,Session之间的区别
初识session、cookie和token
由于之前接触的项目业务特点,小编还没有深入了解过session、cookie和token机制,直到最近开启了一个新项目,新项目因为涉及到“钱”,必须知道要给每个用户有多少钱、发多少钱。那么凡是涉及“钱”的问题都是比较严肃的问题,所以开发大大们也不遗余力的设计各种保证安全的实现方案。
用户5521279
2019/07/10
6700
五分钟带你了解Cookie、Session、Token 和 JWT
根据上图可以看到,从用户请求发起,到服务端完成操作,流程颇多,但是HTTP无状态,我们如何才能详细记录这些操作过程并加以严格的权限判断控制,接下来就开始今天的主题!
周三不加班
2019/09/03
1.2K0
五分钟带你了解Cookie、Session、Token 和 JWT
Session、Cookie、Token三者关系理清了吊打面试官
HTTP 协议是一种无状态协议,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器并不知道客户端的历史请求记录;Session 和 Cookie 的主要目的就是为了弥补 HTTP 的无状态特性。
淘课之家
2020/04/09
2.2K0
Session、Cookie、Token三者关系理清了吊打面试官
网络编程之正确理解HTTP短连接中的Cookie、Session和Token
Cookie 技术产生源于 HTTP 协议在互联网上的急速发展。随着互联网时代的策马奔腾,带宽等限制不存在了,人们需要更复杂的互联网交互活动,就必须同服务器保持活动状态(简称:保活)。于是,在浏览器发展初期,为了适应用户的需求技术上推出了各种保持 Web 浏览状态的手段,其中就包括了 Cookie 技术。Cookie 在计算机中是个存储在浏览器目录中的文本文件,当浏览器运行时,存储在 RAM 中发挥作用 (此种 Cookies 称作 Session Cookies),一旦用户从该网站或服务器退出,Cookie 可存储在用户本地的硬盘上 (此种 Cookies 称作 Persistent Cookies)。
大忽悠爱学习
2022/05/06
1.3K0
网络编程之正确理解HTTP短连接中的Cookie、Session和Token
Cookie、Session、Token与JWT解析
根据以上流程可知,SessionID 是连接 Cookie 和 Session 的一道桥梁,大部分系统也是根据此原理来验证用户登录状态。
乔戈里
2021/10/11
2.2K0
Python3网络爬虫实战-18、Ses
在浏览网站的过程中我们经常会遇到需要登录的情况,有些页面只有登录之后我们才可以访问,而且登录之后可以连续访问很多次网站,但是有时候过一段时间就会需要重新登录。还有一些网站有时在我们打开浏览器的时候就自动登录了,而且很长的时间都不会失效,这种情况又是为什么?其实这里面涉及到 Session 和 Cookies 的相关知识,本节我们就来揭开它们的神秘面纱。
py3study
2020/01/06
7150
相关推荐
Cookie、Session、Token那点事儿
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验