一、Session

 SESSION的流程
1、客户端输入账户和密码,登录成功,在服务端生成一个SESSIONID同时存储在服务端(DB or Redis)
2、服务端把生成的SESSIONID通过响应头中的Set-Cookie返回给客户端
3、再系统下个请求中,比如查看个人主页,发送个人主页请求的时候,会在请求头中的Cookie中带上服务端返回来的SESSIONID发送给服务端
4、服务端接收到客户端发送过来的SESSIONID和存储在自己本地的SESSIONID之间会做一个对比

如果一致,允许访问个人主页
6、如果不一致,就重定向到登录的页面

session post 上传文件 sessionid如何发送到客户端_session post 上传文件

 

 

 

Session与Cookie相同点:cookie和session都是用来跟踪浏览器用户身份的会话方式。

Session与Cookie的区别是:cookie数据保存在客户端,session数据保存在服务器端

二、Token

 

 特点:

 

  1. 每次登录成功后返回的Token是不一样的,是一个随机的字符串
  2. Token一般是通过响应数据返回给客户端
  3. 客户端发送请求给服务端,是通过请求头里面的Authorization: JWT TOKEN

 

TOKEN:本质上是SESSION原理来实现的,我们一般称呼它为令牌。前后端分类的产品使用的都是TOKEN。目前TOKE N使用的技术一般是JWT

 

JWT: Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。

 

Token请求流程

session post 上传文件 sessionid如何发送到客户端_客户端_02

 

 

 三、API

一个API测试通过的标准是:协议状态码;响应数据;业务状态吗(可能有,也可能没有)

四、Clarles软件介绍

 

1、Structure  Sequence为两种不同布局,垃圾桶图标为清理抓包数据

session post 上传文件 sessionid如何发送到客户端_数据_03

 

 

 

 

 

2、安装认证

 

点击Help>>SSL Proxying>>Install Charles Root Certificate>>安装证书>>本地计算机>>选择 将所有的证书都放入系列存储>>预览  选择 受信任的根证书颁发机构>>完成>>点击Proxy>>SSL Proxying Settings>>Add>>Host(填写*)、Port(端口号http:80、https:443、email:25、ssh:22、tomcat:8080、mysql:3306)>>ok、勾选Enable SSL Proxying 、ok

 

3、使用Clarles工具来模拟高并发(同一时刻客户端向服务端发送大量的网络请求)

 

选定网页加载包,右键选择Repeat Advanced..(Iterations为次数)

 

 

session post 上传文件 sessionid如何发送到客户端_服务端_04

session post 上传文件 sessionid如何发送到客户端_服务端_05

 

 

 

 五、Postman软件应用

1、组件学习

session post 上传文件 sessionid如何发送到客户端_服务端_06

 

 

 2、断言(assert)

在postman里面,写assert的地方是tests

session post 上传文件 sessionid如何发送到客户端_客户端_07

 

 

 3、tsets中获取数据

 

在postman里面定义一个变量用var开头来表示,变量名称可自行设置(需要注意的是,定义和获取时一致,这里我们设置为date),console.log代表获取,然后层级获取,例如:图中city在address下则获取方式为console.log(date.address.city)

session post 上传文件 sessionid如何发送到客户端_客户端_08

 

 

 4、相同变量的获取方式

例如图中所示,要获取交通大学的信息则给school下一层级加上[0],要获取长安大学的信息则给school下一层级加上[1]

session post 上传文件 sessionid如何发送到客户端_服务端_09

 

 

 5、举例验证登录信息是否正确

在文档中找到域名复制进postman,获取其头部信息,然后texts中先定义一个变量来获取数据,逐步验证需要的信息。

session post 上传文件 sessionid如何发送到客户端_服务端_10

 

 

 六、Postman工具实战练习

一、https://www.zhipin.com/wapi/zpCommon/data/position.json   该域名下验证职位类型第一个是否为“后端开发”

1、复制该链接至postman地址处,选择GET后Send得到代码资源

 

session post 上传文件 sessionid如何发送到客户端_服务端_11

 

 

 

2、选择Tests,定义一个变量获取响应数据【var jsonDate=JSON.parse(responseBody)】

3、界面右边选择Status code:Code is 200(验证协议状态是否为200 Ok)

 

session post 上传文件 sessionid如何发送到客户端_session post 上传文件_12

 

 

4、Tests下继续编写

【tests["职位类型第一个是的后端开"]=jsonDate.zpData[0].subLevelModelList[0].name=="后端开发"】

 

session post 上传文件 sessionid如何发送到客户端_session post 上传文件_13

 

 

5、Send后查看Test Results结果是否于预期结果一致(是否为PASS)

session post 上传文件 sessionid如何发送到客户端_服务端_14