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)

相关推荐
咋吃都不胖lyh3 小时前
urllib3.util.retry.Retry 是 Python HTTP 客户端库 urllib3 中的一个核心组件,用于实现智能的请求重试机制
网络·网络协议·http
Hard but lovely3 小时前
http的content-text对照表
网络·网络协议·http
wgego5 小时前
http协议中各个网段含义
网络·网络协议·http
ASKED_20195 小时前
不同 QPS 场景下的服务部署架构指南(实战经验总结)
http·架构
BD_Marathon5 小时前
【JavaWeb】HTTP简介
网络·网络协议·http
槿花Hibiscus1 天前
C++基础:session实现和http server类最终组装
服务器·c++·http·muduo
Hey_Coder1 天前
【HTTP:什么是跨源资源共享(CORS)?详解:控制“跨源访问”】
http·cors·预检请求·跨源资源共享·跨域资源共享·cors头信息
一目Leizi1 天前
Burp Suite物联网渗透测试实战指南:从HTTP到MQTT/CoAP的全面攻防
物联网·http·iphone
a程序小傲1 天前
百度Java面试被问:HTTPS解决了HTTP什么问题?
java·后端·http·百度·面试