http header Authorization: Bearer和token之间可以有几个空格

1、问题

项目中用到了satoken,一次使用apipost测试接口,http header中Authorization的Bearer和token之间,不小心,敲了两个空格,服务端报token无效;【不太好排查】,最后发现,是多了一个空格,去掉后,保持一个空格,成功

2、分析

satoken参考文档

代码

是一个空格

根据tokenValue,拼接,取查找对应信息(如果Bearer和Token之间有两个空格,这里,tokenValue的第一个字符就是空格,出错的地方

3、RFC文档

RFC6750

RFC 6750 - The OAuth 2.0 Authorization Framework: Bearer Token Usage

Authorization的值,是扩充巴克斯方式

RFC 5234

RFC 5234 - Augmented BNF for Syntax Specifications: ABNF

=》结合如下规则,1*SP,应该表示:至少一个空格 (所以,Authorization,Bearer后面如果有多个空格,后端服务器最好是能做下兼容处理,去掉多余的空格)

%x20百分号编码(Percent-Encoding) 中的表示方式,表示ASCII字符码的十六进制值

%x20 表示空格字符(Space)

相关推荐
小南知更鸟7 小时前
前端静态项目快速启动:python -m http.server 4173 与 npx serve . 全解析
前端·python·http
Andy工程师9 小时前
网络响应码(HTTP 状态码)和解析方法
网络·网络协议·http
浅陌sss10 小时前
使用Unity从IIS搭建的文件服务器下载资源时出现HTTP/1.1 404 Not Found
运维·服务器·http
Andy工程师11 小时前
Netty 与 Spring Boot + HTTP 客户端(如 RestTemplate、WebClient)应用场景区别
spring boot·后端·http
艾文伯特12 小时前
Charles + Proxifier 实现软件HTTPS抓包
网络协议·http·https
学后端的小萝卜头15 小时前
如何通过HTTP Range请求分段获取OSS资源(下载篇)
java·网络·http
AI视觉网奇15 小时前
ue http 请求学习笔记
网络·网络协议·http
一颗青果1 天前
HTTP协议详解
linux·网络·网络协议·http
talenteddriver1 天前
Java Web:http请求在springboot项目中的传递层级(自用笔记)
java·前端·spring boot·http
bkspiderx1 天前
HTTP跨域问题深度解析:4种实用解决方案与场景适配
网络·http·nginx反向代理·cors·跨域资源共享·http跨域问题