之前我们在Cookie 和Session是什么?已经说过Cookie 和Session,但是为了保证系列的完整性,我们决定重新说一遍,当然可能会有一些区别,建议先从Cookie 和Session是什么?开始看。

Cookie

Cookie 定义

Cookie,又称为“小甜饼”。类型为“小型文本文件”,指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。

为什么要使用Cookie?

   上文中我们已经介绍过HTTP相关知识,但是没有说HTTP是无状态协议,无状态意味着对于事务处理没有记忆能力。举个简单的例子,在典型的网上购物场景中,用户浏览了几个页面,买了一盒饼干和两瓶饮料。最后结帐时,由于HTTP的无状态性,不通过额外的手段,服务器并不知道用户到底买了什么,所以Cookie就是用来绕开HTTP的无状态性的“额外手段”之一。服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状态。

虽然Cookie解决了HTTP无状态问题,但是从测试人员角度出发,笔者认为使用 Cookie还有以下几点缺陷:1. Cookie会被附加在每个HTTP请求中,所以无形中增加了流量。2. 由于在HTTP请求中的Cookie是明文传递的,所以安全性成问题,除非用HTTPS。3. Cookie的大小限制在4KB左右,对于复杂的存储需求来说是不够用的。

我们可以打开Chrom浏览器,地址栏输入chrome://settings/siteData,可以看到我们
Chrom浏览器已经帮我们储存了这么多Cookie。

我们在网上搜索一个关键词后,会发现在很多不同的网页广告栏位置都可能出现该关键字相关的内容。这种情况,很可能就是因为别人拿到了我们的Cookie,有了我们的Cookie,经过一系列的算法,别人就知道我们想要的内容,然后再进行推荐。

当然Cookie的优势和劣势可能远不止这些,关于Cookie的更多知识,可能还需要读者自己去了解,这里对Cookie只进行简单介绍。

Session

Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。

   简单来说,客户端浏览服务端的时候,服务端把客户端信息以某种形式记录在服务器上,这种记录就是Session。

Cookie与Session区别

Cookie、Session简单来说都是为了识别用户信息,关于在开发过程中是使用cookie还是session,还是根据需求进行出发。Cookie与Session有哪些区别,笔者估计读者在网上也都找出许多答案。这里不做过多阐述,笔者认为主要有以下三个方面:

  • 存储方式不同,Cookie可以存储在浏览器或者本地,session只能存在服务器
  • 时效不同
  • 服务器压力不同,因为Session是存储在服务器当中的,所以Session过多,耗费大量的内存,可能会对服务器产生压力


本章小结:在测试过程中,我们一定不会绕过HTTP相关概念。我们在做接口测试的时候,如果对HTTP的请求方法都不是很清楚,笔者认为接口测试无从谈起。一个优秀的接口测试人员,对HTTP、Cookie、Session、这些基础概念应该是要烂熟于心的。本章大多内容都摘自维基百科,过程中有删减,读者可以通过搜索引擎再丰富对这些基础概念的理解。

欢迎关注微信公众号:软件测试汪。软件测试交流群:809111560

20. Cookie 和 Session的更多相关文章

  1. Cookie和Session的总结

    1.开篇 在之前学习这一段的时候我一直有点没弄清楚,其实对Session这块的理解还可以,但是Cookie感觉始终还是欠缺点火候.之后的很长一段时间都基本上很少用Cookie了,渐渐的也淡忘了这一块的 ...

  2. java的会话管理:Cookie和Session

    java的会话管理:Cookie和Session 1.什么是会话 此处的是指客户端(浏览器)和服务端之间的数据传输.例如用户登录,购物车等 会话管理就是管理浏览器客户端和服务端之间会话过程产生的会话数 ...

  3. Cookie和Session的区别

    前言 HTTP是一种无状态的协议,为了分辨链接是谁发起的,就需要我们自己去解决这个问题.不然有些情况下即使是同一个网站我们每打开一个页面也都要登录一下.而Session和Cookie就是为解决这个问题 ...

  4. 【转】Cookie和Session区别和联系详解

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  5. 理解Cookie和Session机制(转)

    目录[-] Cookie机制 什么是Cookie 记录用户访问次数 Cookie的不可跨域名性 Unicode编码:保存中文 BASE64编码:保存二进制图片 设置Cookie的所有属性 Cookie ...

  6. cookie 和session 的区别详解

    这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪 ...

  7. Cookie和Session的区别详解

    本文引用自:http://www.cnblogs.com/shiyangxt/archive/2008/10/07/1305506.html 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一 ...

  8. cookie、session与token

    一.详述概念 1.Cookie机制 cookie机制是采用在客户端保持状态的方案(cookie的作用就是为了解决HTTP协议无状态的缺陷所作的努力).cookie的使用是由浏览器按照一定的原则在后台自 ...

  9. cookie 和session 的区别:

    1.cookie数据存放在客户的浏览器上,session数据放在服务器上.2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 考虑到安全应当使用session.3. ...

随机推荐

  1. Python 进阶_迭代器 & 列表解析

    目录 目录 迭代器 iter 内建的迭代器生成函数 迭代器在 for 循环中 迭代器与字典 迭代器与文件 创建迭代器对象 创建迭代对象并实现委托迭代 迭代器的多次迭代 列表解析 列表解析的样例 列表解 ...

  2. getAttribute 与getParmeter 区别

    1.getAttribute是取得jsp中 用setAttribute設定的attribute 2.parameter得到的是string:attribute得到的是object 3.request. ...

  3. C# DotNetZip压缩单、多文件以及文件夹

    有些项目为了更好的用户体验,会把下载文件做成一个压缩的文件,直接下载,免得去一个个的点击下载文件.网上有很多压缩文件的方法,也有第三方的分装DLL文件,本文主要介绍DotNetZip压缩方法. Dot ...

  4. spring boot 尚桂谷学习笔记07 嵌入式容器 ---Web

    ------配置嵌入式servlet容器------ springboot 默认使用的是嵌入的Servlet(tomcat)容器 问题? 1)如何定制修改Servlet容器的相关配置: 1.修改和se ...

  5. python排序参数key以及lambda函数

    首先,lambda格式 lambda x:x+1, 前面的x相当于传入的形参,后面的相当于返回值, 使用起来很简单,只要明白“:”前后的含义即可正确使用. 再来说一下排序等函数中的key,这里以lis ...

  6. Java开发中的23种设计模式详解(3)行为型

    本章是关于设计模式的最后一讲,会讲到第三种设计模式--行为型模式,共11种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模 ...

  7. CSS学习笔记(基础部分)

    一.CSS 简介: CSS 指层叠样式表 (Cascading Style Sheets),用来设置HTML的格式. 语法:选择器 {属性:值;属性:值} 注释://注释内容 /*注释内容*/ 二.C ...

  8. Springboot1.5.9整合WebSocket

    一.WebSocket介绍 1.WebSocket是什么? WebSocket是协议,是HTML5开始提供的基于TCP(传输层)的一种新的网络协议, 它实现了浏览器与服务器全双工(full-duple ...

  9. 【记录】linux docker 安装 tomcat

    前言:首先linux需要先安装docker,具体步骤可以参考博主之前博客,也可自行百度. 话不多说,开始安装tomcat: 通过docker安装tomcat docker pull tomcat:8. ...

  10. Linux系统分辨率设置

    linux 设置分辨率 如果你需要在linux上设置显示屏的分辨率,分两种情况:分辨率模式存在与分辨率模式不存在,具体如下. 1,分辨率模式已存在 1)如何查询是否存在: 图形界面:在System S ...