简介
  为了验证用户登录情况以及减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。有些登录不是用 cookie 来验证的,是用 token 参数来判断是否登录。token 传参有两种一种是放在请求头里,本质上是跟 cookie 是一样的,只
是换个单词而已;另外一种是在 url 请求参数里,这种更直观。
登录返回token
1、如下图的这个登录接口,就是没有 cookies的登录接口。

2、但是这个登录接口,登录成功后有返回token,如下图

请求头带token
1、登录成功后继续操作其它页面,发现post请求的请求头,都会带有token参数

2、这种请求其实比cookie更简单,直接把登录后的token放到头部即可
token关联
1、用脚本实现登录,获取token参数,获取后传参到请求头就可以了
2、如果登录有验证码,前面的脚本登录步骤就省略了,自己手动登录后获取token
参考代码
1 # coding:utf-8 2 import requests 3 header = { # 登录抓包获取的头部 4 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0", 5 "Accept": "*/*", 6 "Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3", 7 "Accept-Encoding": "gzip, deflate", 8 "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", 9 "X-Requested-With": "XMLHttpRequest", 10 "Content-Length": "423", 11 "Connection": "keep-alive" 12 } 13 body = {"key1": "value1", 14 "key2": "value2"} # 这里账号密码就是抓包的数据 15 s = requests.session() 16 login_url = "http://xxx.login" # 自己找带token网址 17 login_ret = s.post(login_url, headers=header, data=body) 18 # 这里token在返回的json里,可以直接提取 19 token = login_ret.json()["token"] 20 # 这是登录后发的一个post请求 21 post_url = "http://xxx" 22 # 添加token到请求头 23 header["token"] = token 24 # 如果这个post请求的头部其它参数变了,也可以直接更新 25 header["Content-Length"]="9" 26 body1 = { 27 "key": "value" 28 } 29 post_ret = s.post(post_url, headers=header, data=body1) 30 print post_ret.content
小结
Token的意义及用法
一.Token的来源:
当客户端多次向服务端请求数据时,服务端就需要多次从数据库中查询用户名和密码并进行对比,判断用户名和密码是否正确,并作出相应提示。但这样无疑会增加服务器端的运行压力,是否可以有一种方式只需要验证用户就是之前的用
户而不需要每次在客户端请求数据时都需要查询数据库判断用户名和密码是否正确。在这种请求下,引入了token来解决服务器端多次访问数据库问题。
1、什么是Token:
Token是服务端端生成的一串字符串,作为客户端进行请求时辨别客户身份的的一个令牌。当用户第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。
2、使用Token的目的:
Token的目的是为了验证用户登录情况以及减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。
二. Token的运用流程:
1、当用户首次登录成功之后, 服务器端就会生成一个 token 值,这个值,会在服务器保存token值(保存在数据库中),再将这个token值返回给客户端;
2、客户端拿到 token 值之后,进行保存 (保存位置由服务器端设置);
3、以后客户端再次发送网络请求(一般不是登录请求)的时候,就会将这个 token 值附带到参数中发送给服务器.;
4、服务器接收到客户端的请求之后,会取出token值与保存在本地(数据库)中的token值进行比较;
5、如果两个 token 值相同, 说明用户登录成功过!当前用户处于登录状态;
6、如果没有这个 token 值, 没有登录成功;
7、如果 token 值不同: 说明原来的登录信息已经失效,让用户重新登录;
8、Django Rest framework中JWT的使用稍有差异,这里不做详细说明。

为了方便大家在移动端也能看到我分享的博文,现已注册个人微信公众号,扫描左下方二维码即可,欢迎大家关注,有时间会及时分享相关技术博文。 为了方便大家互动讨论相关技术问题,现已组建专门的微信群,由于微信群满100,请您扫描右下方宏哥个人微信二维码拉你进群(请务必备注:进群),欢迎大家加入这个大家庭,我们一起畅游知识的海洋。
感谢您花时间阅读此篇文章,如果您觉得这篇文章你学到了东西也是为了犒劳下博主的码字不易不妨打赏一下吧,让博主能喝上一杯咖啡,在此谢过了!
如果您觉得阅读本文对您有帮助,请点一下左下角“推荐”按钮,您的“推荐”将是我最大的写作动力!另外您也可以选择a href="">【关注我】,可以很方便找到我!
本文版权归作者和博客园共有,来源网址:https://www.cnblogs.com/du-hong 欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利!

http://weixin.qq.com/r/LS8vK3-EtrfKKTtIb3qp (二维码自动识别)

https://u.wechat.com/MMAM8iZlmjp7P6FSjrypXKM (二维码自动识别)

delphi接口带上请求头是什么意思_python接口自动化(二十)--token登录(详解)...相关推荐

  1. delphi接口带上请求头是什么意思_Python接口自动化之Token详解及应用

    ------·今天距2021年258天·------ 这是ITester软件测试小栈第113次推文 在上一篇Python接口自动化测试系列文章:Python接口自动化之cookie.session应用 ...

  2. delphi接口带上请求头是什么意思_Gin框架中使用JWT进行接口验证

    背景: 在如今前后端分离开发的大环境中,我们需要解决一些登陆,后期身份认证以及鉴权相关的事情,通常的方案就是采用请求头携带token的方式进行实现.本篇文章主要分享下在Golang语言下使用jwt-g ...

  3. delphi 使用cef3谷歌浏览器内核加载带header请求头的网页

    上一篇博文介绍到用IE加载带Header请求头的网页,本篇介绍使用cef3实现同样的功能. 我使用的谷歌浏览器内核是49版,支持XP系统的最新版,所以,版本有够低的了. procedure TForm ...

  4. java接口vm和dto的区别_第十八节:详解Java抽象类和接口的区别

    前言 对于面向对象编程来说,抽象是它的特征之一. 在Java中,实现抽象的机制分两种,一为抽象类,二为接口. 抽象类为abstract class,接口为Interface. 今天来学习一下Java中 ...

  5. vue怎么让接口带上cookie_在Vue中怎么使用cookie 之 vue-cookies

    cookie 在工作中比较常用, 可以自行封装一些 添加/删除/获取cookie的方法, 可参考这个 在Vue中有个很好用的插件 vue-cookies github地址:https://github ...

  6. Spring如何实现统一的基于请求头header或url的接口版本控制

    1.基于请求头方式的版本控制 定义自己的 RequestCondition 来做请求头的匹配: public class APIVersionCondition implements RequestC ...

  7. python爬虫请求头是什么意思_python爬虫请求头的使用

    这篇文章我们来讲一下在网站建设中,python爬虫请求头的使用.本文对大家进行网站开发设计工作或者学习都有一定帮助,下面让我们进入正文. 爬虫请求头 网页获取: 通过urlopen来进行获取 requ ...

  8. 下面哪个字段是http请求中必须具备的_理解HTTP协议-HTTP协议详解总结

    一.HTTP协议的演进 HTTP(HyperText Transfer Protocol)协议是基于TCP的应用层协议,它不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,最初是用来向 ...

  9. API 网关服务:Spring Cloud Zuul(二):路由详解、Cookie 与头信息

    实践出于<Spring Cloud 微服务实战> - 瞿永超 著 路由详解 传统路由配置   传统路由配置就是在不依赖于服务发现机制的情况下,通过在配置文件中具体指定每个路由表达式与服务实 ...

最新文章

  1. android 背景切换动画效果代码,关于Android shape gradient背景渐变
  2. 最小二乘GAN:比常规GAN更稳定,比WGAN收敛更迅速
  3. Linux上的free命令详解
  4. pe如何自动加载外置工具_如何自动加载网站的深色模式?
  5. (转)网站推广优化教程100条(SEO,网站关键字优化,怎么优化网站,如何优化网站关键字)...
  6. 一场关于动态化开发实践的技术探讨
  7. Enum枚举类|注解Annotation
  8. Protobuf编码指南
  9. IE6 Hack(转载)
  10. linux下编译libyuv,linux.mk
  11. JwtUtil-MD5Util-RedisUtil,以及springboot aop练习(记录)
  12. Linux系统常用命令(一)
  13. 电脑机器人_磨小分校参加成都市“青少年电脑机器人创新实践活动”巡航者决赛...
  14. Delphi XE7 下载 安装序列号 破解
  15. Soul App 后台Api接口
  16. 关于iis中域名转向的问题
  17. docker for desktop一直starting
  18. 下等人薄情,中等人深情,上等人……
  19. 【开源小软件 】Bing每日壁纸 V1.2.1
  20. python抓取微博评论的图片_用Python语言爬虫抓取微博评论图文教程

热门文章

  1. 十个提升你Emacs生产力的高招
  2. 实现输入界面适应键盘的显示和隐藏事件
  3. 9-4 节点取余分区
  4. 高程数据处理_全国12.5米高程 DEM for WeServer 数据1.0
  5. mybaits 字段设置null_并发编程的艺术:双重检查锁为什么要使用volatile字段?
  6. android 地图定位报错,百度地图定位迷之报错(latitude : 4.9E-324 lontitude : 4.9E-324)
  7. 台式电脑屏幕怎么调亮度_电脑屏幕亮度到底怎么调才最好?
  8. 印花对花不准(错花)形态及成因
  9. Linux虚拟机添加磁盘
  10. OkHttp上传文件,服务器端请求解析找不到文件信息的问题