WebAPI之postman变量和session/token
postman使用变量:
之前我们请求里面的主机地址都是localhost,表示本机。而在实际测试过程中,服务器地址往往并非是在本机上的,这时候就需要用到变量。
postman支持多个测试环境,一个环境里可以配置多个变量。
postman的变量主要分两种类型:
① 环境里面的变量
- 点击界面右上角的齿轮图标,选择Manage Environments
- 在弹出对话框中,点击Add按钮,填写环境名ENVIRONMENT NAME 、VARIABLE、CURRENT VALUE 如 :server1 serverip http://localhost
- 这样一套环境就创建好了。创建好厚,就需要使用 可以将所有请求的url中的主机名localhost替换为为变量名{{server1}} 如 https://{{server1}}/api/pagenum
- 注意:双花括号将变量名括起来,双花括号就表示里面是一个变量。
- 当进行测试时,若使用的是本机的API服务,那就选择名为server1配置的环境;若使用不是本地的,就选择server2的环境,postman就会使用不同环境里面的变量对应的值。
② 全局变量
- 有时候,有些变量,我们并不需要配置到很多套环境里,因为基本上这就是一个固定值,要修改的话,所有的环境里面都要修改。
- 我们没有必要创建变量到环境中,可以创建一个全局变量,全局变量与我们选择的环境无关。
- 点击界面右上角的齿轮图标,选择Manage Environments
- 在弹出对话框中,点击Globals,加入全局变量名和变量值 如:course_add {'name':'初中数学', 'desc':111, 'display_idx':1}
- 然后我们可以在API请求的body中将参数的value值修改为用变量替代即可。如 {{course_add}}
HTTP抓包:
在进行接口测试时,我们难免要用到fiddler工具来抓包:
http抓包,就会使用到fiddler。目前有两种抓包类型:
① 抓浏览器的包 我们需要指定浏览器的代理。以Chrome浏览器为例,进入设置 === 高级选项 ===打开代理设置 ===勾选使用代理服务器设置地址和端口
② 抓手机上的包 同样需要在手机上设置代理。填入fiddler所在机器的IP地址和代理服务器端口(默认8888)。注意:电脑wifi和手机所连接的wifi应处于同一个网络环境。
这样配置好,就可以抓http包了。
另外如果想抓取https包,相应的需要下载fiddler证书将其导入浏览器中或手机上安装fiddler证书,才可抓取哦!
cookie和session:
做web api测试时,可能会接触到cookie和session。
cookie是我们在访问一个网站时,通常由网站服务器返回的一种标记为cookie类型数据。要求我们存储在浏览器所在电脑上。
以后每次访问本网站,浏览器都会在http请求中将该数据发送过来。
session也叫会话,某用户登录后,服务端就会认为创建了一个会话session。另一个用户登录就会创建另一个session。
为了标志不同的会话,服务端后面生成一个叫sessionid的东西,标志这次登录的所有后续http消息交互。
sessionid通常都保存在数据库中,并且咳哟存储该sessionid的一系列信息,如 用户名、权限等。
session通常用在web应用中,就是浏览器里面的网页应用。作为一种验证用户权限的机制:能根据sessionid,从而知道该用户是否有相应的权限访问相应的资源。
sessionid是如何返回给客户端的呢? --------
通过http响应里面的Set-Cookie头部信息,要求浏览器保存到cookie中。
随后,客户端每次访问同一个网站,都会将该cookie里面的内容放到http头部中,当然sessionid也在里面 。即Set-Cookie中存储了sessionid
所以服务端根据sessionid,到表中能够查到相应的记录,就知道了对应的是哪个用户登录。
总结:cookie主要用来存储用户的一些信息,存储在浏览器中
session机制利用了cookie的功能 sessionid存储在数据库中;session弊端就是:服务器有一定压力,性能上会有损耗。
token:是数据信息和验证信息的一串字节数据。而token是你们公司的业务服务器生成的。
- hash算法产生token
- 数据信息改变,验证信息也会改变,HMAC算法
- 密钥 + data = HMAC
生成的token包含了别人无法伪造的验证数据,可以用来验证这个token是否是我这个业务服务器生成的。
token验证的逻辑如下:
1 - 客户端发送请求给服务器,服务器接收并验证后,产生一个token
2- token里面包含了一些关于这用户的数据信息以及验证token有效性的数据,服务器将token返回给客户端
3 - 客户端得到token后,以后每次业务请求都要带上token
4 - 通常放在http请求头Authenrization中,服务端接到请求,就会验证token是否是自己签发的。验证方法同样是hmac(密钥 + 数据)= 验证信息,计算出来验证信息和token里面的验证信息是否一致。
注意:公钥可以用来加密,私钥可以用来解密;私钥可以用来签名,公钥可以用来验证签名。
好处:一旦登陆后,后续只要把请求带过来,验证通过。
token的优点:不需要通过数据库验证,极大的提高了速度
token使用场景:① 防止表单重复提交 ② 跨站点请求伪造
WebAPI之postman变量和session/token的更多相关文章
- Postman实现数字签名,Session依赖, 接口依赖, 异步接口结果轮询
Script(JS)为Postman赋予无限可能 基于Postman 6.1.4 Mac Native版 演示结合user_api_demo实现 PS 最近接到任务, 要把几种基本下单接口调试和持续集 ...
- cookie,session,token的定义及区别
参考了很多文章总结的. 1.cookie(储存在用户本地终端上的数据) 服务器生成,发送给浏览器,浏览器保存,下次请求同一网站再发送给服务器. 2.session(会话) a.代表服务器与浏览器的一次 ...
- 静态变量和Session
静态变量: Application级别的,不同客户端访问同一个变量. Session:对于每个访问的客户端是独立的,都有一个唯一的SessionID.也就是说,不同客户端下,都可以有一个Session ...
- MySQL设置global变量和session变量
1.在MySQL中要修改全局(global)变量,有两种方法: 方法一,修改my.ini配置文件,如果要设置全局变量最简单的方式是在my.ini文件中直接写入变量配置,如下图所示.重启数据库服务就可以 ...
- cookie, session, token 是什么 以及相应的安全考量
Cookie cookie 最常见的是用来保存一些账号信息,比如下图里的 记住账号 就是记录到了cookie里面 cookie 更主要的是针对和server通信的,我们知道http 是无状态的,那如果 ...
- Session, Token and SSO 有什么区别
Session, Token and SSO 有什么区别 Basic Compareation Session-based Authentication In Session-based Authen ...
- Python Web学习笔记之Cookie,Session,Token区别
一.Cookie,Session,Token简介 # 这三者都解决了HTTP协议无状态的问题 session ID or session token is a piece of data that i ...
- (转载)session token机制
http://blog.chinaunix.net/uid-26642709-id-3061264.html 使用session token时,必须用struts2表标签库,不能用html 通过ses ...
- nodejs 剪切图像在上传,并保存到指定路径下(./public/img/' + req.session.token + '.jpg‘)
前jQuery端接收数据 function upAvatar(img){ console.log(img); // data:image/jpeg;base64,/9j/4AAQSkZJRgABAQA ...
随机推荐
- Centos 6/7 常用命令总结 (基础)
Centos 6/7 常用命令总结 (基础): 参考链接:https://www.cnblogs.com/linhaifeng/p/6045600.html 目录介绍: a) bin目录:用来存放常用 ...
- [干货]AspNetCore熟练应用CancellationToken,CTO会对你刮目相看
背景 已经有很多文章记录了 web程序中采用异步编程的优势和.Net异步编程的用法, 异步编程虽然不能解决查询数据库的瓶颈, 但是利用线程切换,能最大限度的弹性利用工作线程, 提高了web服务的响应能 ...
- Hadoop压缩的图文教程
近期由于Hadoop集群机器硬盘资源紧张,有需求让把 Hadoop 集群上的历史数据进行下压缩,开始从网上查找的都是关于各种压缩机制的对比,很少有关于怎么压缩的教程(我没找到..),再此特记录下本次压 ...
- 如何基于k8s快速搭建TeamCity(YAML分享)
前言 最近有朋友基于之前的博客<Docker最全教程之使用TeamCity来完成内部CI.CD流程(十七)>搭建TeamCity时出现了一些问题,由于平常比较忙,没有及时答复,非常抱歉. ...
- Mysql备份还有这么多套路,还不了解下?
逻辑备份和物理备份 逻辑备份 逻辑备份用于备份数据库的结构(CREAET DATABASE.CREATE TABLE)和数据(INSERT),这种备份类型适合数据量小.跨SQL服务器.需要修改数据等场 ...
- nyoj 34-韩信点兵(暴力)
34-韩信点兵 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:34 submit:41 题目描述: 相传韩信才智过人,从不直接清点自己军队的人数,只 ...
- InfluxDB 聚合函数实用案例
InfluxDB 聚合函数实用案例 文章大纲 InfluxDB 简介 InfluxDB是GO语言编写的分布式时间序列化数据库,非常适合对数据(跟随时间变化而变化的数据)的跟踪.监控和分析.在我们的项目 ...
- WeTest明星工具-移动端性能测试PerfDog初探
在十一月初,腾讯就官宣了一则消息,腾讯WeTest明星工具-PerfDog面向全球发布.官宣介绍如下:https://wetest.qq.com/lab/view/475.html.我在看到该新闻时, ...
- svn文件被锁不能提交的解决办法
记录工作中遇到的问题,分享出来: 前端时间在提交项目到svn遇到一个问题, 提交的时候提示:文件已经锁定!如下图: 原因是我之前提交的时候不小心中途停了,导致文件被锁,然后也没在意那么多, 趁着今天有 ...
- NN入门,手把手教你用Numpy手撕NN(三)
NN入门,手把手教你用Numpy手撕NN(3) 这是一篇包含极少数学的CNN入门文章 上篇文章中简单介绍了NN的反向传播,并利用反向传播实现了一个简单的NN,在这篇文章中将介绍一下CNN. CNN C ...