• 0
  • 0
分享
  • 这个面试必问题,考察你对接口的掌握程度——软件测试圈
  • 曼倩诙谐 2023-07-19 15:23:17 字数 2682 阅读 1089 收藏 0

  前言

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

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

  http无状态

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

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

  cookies

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

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

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

  cookie的格式显示

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

{name=value; expires=date; path=path; domain=domain; secure}

  其中:

  name表示cookie的名称

  value表示cookie的值

  expires表示cookie的过期时间

  path表示cookie的路径

  domain表示cookie的域名

  secure表示cookie是否只能通过安全的https连接传输

1.png

  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的内容和目前测试人员可以通过这些完成哪些操作,从而辅助我们进行工作。

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

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

  测试进阶

  在智能驾驶发展得如火如荼的今天,软件测试行业也随之衍生出车载测试的岗位需求。对比其它在招岗位,车载测试的薪资也更加可观。


作者:测试安静    

来源:http://www.51testing.com/html/30/n-7796230.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、前提开启模拟器(我的是直接用的Android Studio的模拟器,所以在开启模拟器之前我还要开启Android Studio)打开appium服务器打开pycharm打开cmd二、上实战打开模拟器在cmd中输入代码:adb shell dumpsys window | findstr mCurrentFocus可查询到包名和界面名(界面名可以省略包名,但是我害怕漏了那个点,一般都不省略)比如说我的包名:com.google.android.apps.messaging界面名.conversation.screen.Convers...
            12 12 1784
            分享
          • 软件测试分类按测试用例的设计方法,软件测试分为白盒测试和黑盒测试。按测试策略和过程,软件测试分为单元测试、集成测试、确认测试和系统测试。按软件系统工程,测试是软件质量保证的最后的一关。高质量的程序取决于以下几个方面:高质量的设计规范的编码有效的测试开发部的测试 效果不好:为什么?没有时间测试不知道怎样测试不好组织缺乏方法和工具这种情况下,往往把单元测试的任务堆积到系统测试阶段。如果把单元测试的任务堆积到系统测试阶段,将会怎样?大量的故障堆积在项目中后期:项目后10%的工作,占用了项目90%的时间。故障难以定位故障飘忽不定开发、测试人员疲于奔命软件缺陷的修复费用单元测试(why)最高的成本收益比...
            10 10 1532
            分享
          • Q #1) MySQL 事务是原子的吗?答:是的,事务是通过概念在 MySQL 中实现原子性的。atomic 的简单含义是——ALL 或 NONE 和 MySQL 事务完全支持这一点。在这里,如果没有错误,那么所有的语句都会被执行。但是,如果出现任何差异或错误,则不会执行事务中的任何语句。Q #2) 如何回滚 MySQL 事务?答:事务可以提交或回滚/恢复。要恢复事务的更改,您只需在执行 COMMIT 之前运行 ROLLBACK 命令。例如,参考下面的事务,我们使用 ROLLBACK 来恢复事务期间所做的更改。START TRANSACTION; --statement1 ...
            0 0 1798
            分享
          •   新浪科技讯 北京时间1月16日晚间消息,据报道,微软正考虑对旧金山人工智能(AI)研究公司OpenAI投资100亿美元。分析人士称,这笔潜在交易有可能成为人工智能新时代的决定性交易。  如果微软对人工智能技术深远影响的押注是正确的,那么这笔交易还可能引发人工智能世界的一场重组,因为其他科技公司也竞相在“生成式人工智能”(Generative AI)的新领域争夺自己的位置。  上个月,OpenAI因为推出了一款智能聊天机器人系统ChatGPT而成为了全球关注的焦点。ChatGPT是一套人工智能系统,可以回答问题,并用听起来十分自然的语言生成文本。  ChatGPT很快就得到了微软的关注。微软...
            0 0 1080
            分享
          • 前言:本篇讲堂是紧接【安全测试工具-进阶篇[敏感信息泄露和XXE漏洞]】的内容。例牌,先说下安全测试工具的更新情况【工具地址:https://gitee.com/samllpig/SafeTool-51testing】集成平台,增加自定义生成字典插件重放窗口增加PUT方法,修改发送JSON请求的问题漏洞讲解:所属模块: (A5) Broken Access Control [访问控制漏洞]6.1 菜单项: Insecure Direct Object References [不安全的直接对象引用],本章共6个小节6.1.1 第一节主题:不安全的直接对象引用简介内容:要知道什...
            0 0 86
            分享
      • 51testing软件测试圈微信