HTTP Request 请求示例

HTTP 请求信息

Request Headers 请求头

  • method: GET http 协议请求方式
  • path: /auth/token 请求路径 | 接口地址
  • *accept: / * 浏览器可接受的 MIME 类型
  • accept-encoding: gzip, deflate 浏览器能够进行解码的数据编码方式
  • accept-language: zh-TW,zh-CN;q=0.9,zh;q=0.8 浏览器所希望的语言种类 authorization: 授权信息,通常出现在对服务器发送的 WWW-Authenticate 头的应答中
  • Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wveW91cWlhbmFjYzUua2p4dC5jb21cL21hbmFnZVwvdjJcL2dldF9tZXNzYWdlX25vdGljZSIsImlhdCI6MTY1NTQ0ODI2MywiZXhwIjoxNjU1NTM0NzcwLCJuYmYiOjE2NTU1MTMxNzAsImp0aSI6IkZCUW9zWjh6MzQ4YW9OVnoiLCJzdWIiOjI1MDksInBydiI6Ijc4N2I0NTc3NjMxZThjMGEwYjBlNWRhN2YzODBjMGJjODk3MjI3YmQiLCIwIjoibWFuYWdlIn0.6KGlchjdbiz33DxaB09xGFyzZVU1eTeDXsySi80lt4s
    Bearer 是授权的类型,常见的授权类型有:
  • Basic 用于 http-basic 认证;
  • Bearer 常见于 OAuth 和 JWT 授权;
  • Digest MD5 哈希的 http-basic 认证
  • AWS4-HMAC-SHA256 授权
  • cookie: li_first_access_time=1652146348; 最重要的请求头信息之一,当前浏览器会话 cookie
  • referer: http://localhost:9528/ 用户从该 URL 代表的页面出发访问当前请求的页面
  • sec-ch-ua: “ Not A;Brand”;v=”99”, “Chromium”;v=”102”, “Google Chrome”;v=”102”
  • user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36 浏览器类型 | 版本 | 操作系统信息

Response Headers 响应头

  • cache-control: no-cache, private 告诉所有的缓存机制是否可以缓存及哪种类型
  • content-encoding: gzip 服务器支持的返回内容压缩编码类型
  • content-type: application/json 返回内容的 MIME 类型
  • date: Sat, 18 Jun 2022 03:09:39 GMT 原始服务器消息发出的时间
  • strict-transport-security: max-age=15724800; includeSubDomains
  • vary: Accept-Encoding 告诉下游代理是使用缓存响应还是从原始服务器请求
  • Client Request 请求的 JWT 令牌,包含在请求标头中,例如:

‘Authorization’ => ‘Bearer: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9tYW5hZ2UuYWNjNS5tZVwvbWFuYWdlXC9hdXRoXC9sb2dpbiIsImlhdCI6MTY1Mzg3MzE3MywiZXhwIjoxNjUzODk0NzczLCJuYmYiOjE2NTM4NzMxNzMsImp0aSI6ImVyNDlKcEh0OTROaU9FMkYiLCJzdWIiOjQwMzYsInBydiI6Ijc4N2I0NTc3NjMxZThjMGEwYjBlNWRhN2YzODBjMGJjODk3MjI3YmQiLCIwIjoibWFuYWdlIn0.dVNLT_x53IK00FH7eFtI2fPimVcGOCLi916oH4iaBb4’

我想获得此令牌并验证它:这是我正在尝试的内容:

$token = $request->header(‘Authorization’);

这就是我得到的:

“Authorization: Bearer: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9tYW5hZ2UuYWNjNS5tZVwvbWFuYWdlXC9hdXRoXC9sb2dpbiIsImlhdCI6MTY1Mzg3MzE3MywiZXhwIjoxNjUzODk0NzczLCJuYmYiOjE2NTM4NzMxNzMsImp0aSI6ImVyNDlKcEh0OTROaU9FMkYiLCJzdWIiOjQwMzYsInBydiI6Ijc4N2I0NTc3NjMxZThjMGEwYjBlNWRhN2YzODBjMGJjODk3MjI3YmQiLCIwIjoibWFuYWdlIn0.dVNLT_x53IK00FH7eFtI2fPimVcGOCLi916oH4iaBb4”

接下来我们就来抓取 “Authorization: Bearer” 的令牌

  • 方法 1

通过 request () 方法获取 header (‘Authorization’)

$header = \request()->header('Authorization');

“Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9tYW5hZ2UuYWNjNS5tZVwvbWFuYWdlXC9hdXRoXC9sb2dpbiIsImlhdCI6MTY1Mzg3MzE3MywiZXhwIjoxNjUzODk0NzczLCJuYmYiOjE2NTM4NzMxNzMsImp0aSI6ImVyNDlKcEh0OTROaU9FMkYiLCJzdWIiOjQwMzYsInBydiI6Ijc4N2I0NTc3NjMxZThjMGEwYjBlNWRhN2YzODBjMGJjODk3MjI3YmQiLCIwIjoibWFuYWdlIn0.dVNLT_x53IK00FH7eFtI2fPimVcGOCLi916oH4iaBb4”

发现返回值带有 “Bearer” 标头,通过去掉字符串前 7 位,就能得到 token 的字符串信息

use Illuminate\Support\Str;public function bearerToken(){$header = \request()->header('Authorization');if (Str::startsWith($header, 'Bearer ')) {return Str::substr($header, 7);}}
  • 方法 2

经过对 laravel 的研究发现,在 InteractsWithInput 类中有封装好的处理方法,源码如下:

    /*** Get the bearer token from the request headers.** @return string|null*/public function bearerToken(){$header = $this->header('Authorization', '');if (Str::startsWith($header, 'Bearer ')) {return Str::substr($header, 7);}}

我们发现这个实现方式与方法 1 一模一样,所以,我们可以直接调用 InteractsWithInput::bearerToken (),实现 Authorization 抓取并处理 Bearer

$header = \request()->bearerToken();

最终得到的结果:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9tYW5hZ2UuYWNjNS5tZVwvbWFuYWdlXC9hdXRoXC9sb2dpbiIsImlhdCI6MTY1Mzg3MzE3MywiZXhwIjoxNjUzODk0NzczLCJuYmYiOjE2NTM4NzMxNzMsImp0aSI6ImVyNDlKcEh0OTROaU9FMkYiLCJzdWIiOjQwMzYsInBydiI6Ijc4N2I0NTc3NjMxZThjMGEwYjBlNWRhN2YzODBjMGJjODk3MjI3YmQiLCIwIjoibWFuYWdlIn0.dVNLT_x53IK00FH7eFtI2fPimVcGOCLi916oH4iaBb4

通过 token 鉴权和验证,就可以正常请求 api 接口了,下一期给大家分享 token 生成和鉴权验证。

接收Request请求Bearer令牌参数相关推荐

  1. SpringBoot重写拦截器导致无法接收Put请求表单参数

    有个项目,由于架构问题,开始没有重写拦截器,而在接口写了一大部分的时候(api是rest风格,主要使用get,post,put,delete,patch方法),发现有些功能需要在拦截器统一配置,于是才 ...

  2. java 修改 request参数值_修改request请求参数

    本质上来讲,request请求当中的参数是无法更改的,也不能添加或者删除: 但在后台程序中,一般对request的参数的操作,都是通过request的getParameter.getParameter ...

  3. 如何多次读取request请求里的数据

    问题场景 : 我们一般直接获取request请求里的参数进行数据处理,现在想在过滤器里获取请求参数并打印,方便做日志排查. 但是POST请求中的参数是存储在流中的,只能读一次,无法多次读取. 解决办法 ...

  4. 微信小程序request请求后台接收不到参数问题

    微信小程序request请求后台接收不到参数问题 一. 小程序部分代码 二. 后端 三. 问题代码 四. 请求头 一. 小程序部分代码 发一个普通的request请求 wx.request({url: ...

  5. nodejs接收get请求参数

    nodejs接收get请求参数 1.1-浏览器向服务器发送get请求参数的两种方式 1.2-服务端使用url模块解析get请求参数 在http协议中,一个完整的url路径如下图 通过下图我们可以得知, ...

  6. java webmethod 参数_java详解Spring接收web请求参数的方式

    本篇文章给大家带来的内容是java详解Spring接收web请求参数的方式 .有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 1 查询参数 请求格式:url?参数1=值1&参 ...

  7. laravel 提交Request 请求后会莫名多出一个s参数,导致数据库报错问题的解决方法

    项目场景: apache运行laravel框架开发的系统. 问题描述: 提交post或者其他请求,会在request中存在s参数,导致数据库报错. 原因分析: apache的.htaccess文件中的 ...

  8. delete请求怎么传参数_postman第2讲-核心功能一:Request(请求)

    Request 是 postman 进行接口测试最核心的功能,下面我们对其进行一一讲解,本讲主要围绕以下功能区域进行讲解: 新建一个 Request 我们想在 postman 中创建一个 Reques ...

  9. 微信小程序|开发实战篇之request请求(单个、多个参数,json对象,header)

    开发实战篇之request请求 前言 1.发送单个.多个参数的request 2.发送JSON对象的request 3.发送header的request 前言 小程序发送网络请求常会遇到的问题: 请求 ...

最新文章

  1. [PHP]用PHPUnit进行行为驱动开发(Behaviour-Driven Development)
  2. 随机验证码。 * 随机生成十组六位字符组成的验证码。 * 验证码由大小写字母、数字字符组成。
  3. [ZJOI2008] 树的统计(树链剖分)
  4. 【英语学习】【Daily English】U14 Transportation L02 I'm afraid that you're going in the wrong direction.
  5. 【雷达通信】基于matlab GUI雷达定位模拟【含Matlab源码 304期】
  6. 将[ESRI中国社区-GIS大讲堂]中Jueery关于ArcGIS Server的帖子内容整理成PDF发上来
  7. php fckeditor,FCKeditor的PHP配备
  8. Java锁synchronized关键字学习系列之CAS和对象头
  9. 向量叉积和点积混合运算_向量点积叉积及其几何意义
  10. 12306验证码识别
  11. GMM 简介与 Stata 实现
  12. Window上装Linux系统的便捷方法,简单又省事!
  13. 笔记本电脑硬盘坏了怎么办?笔记本硬盘坏了修复技巧
  14. python---之scipy.ndimage.measurements.label
  15. 京东广告推荐机器学习系统实践
  16. offlineimap读取qq邮箱
  17. pikachu之sql注入
  18. Matlab画三维图笔记
  19. 消息称勒索软件可逃避PC防御、Office漏洞补丁能被攻击者绕过|12月24日全球网络安全热点
  20. 网络层(4.网际控制报文协议)

热门文章

  1. 1355C - Count Triangles,2021CCPC桂林 C,D
  2. 多个excel表格合并成一个表格文件
  3. 2015罗辑思维跨年演讲浓缩精华版整理
  4. 当创新面对“顾客是上帝”和“市场调查”之类
  5. 零基础学浙大翁恺C语言(4):进一步的判断与循环
  6. DJI Care 行业无忧悦享基础版
  7. 脑波震动(二):全身脑波震动
  8. 内卷室友系列 -- day01 计算机网络概论
  9. Android取消选择单选按钮,如何取消选中Android中的单选按钮
  10. Vue/React组件化开发的一些思考