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)

相关推荐
Oo92014 小时前
Prompt 在 NLP 中的应用——从一条 HTTP 请求说起
http
米丘14 小时前
HTTP 3xx 重定向类状态码
http·node.js
代码中介商16 小时前
HTTP 完全指南(一):请求与响应报文结构深度详解
网络·网络协议·http
米丘16 小时前
HTTP 强缓存 和 协商缓存 (浏览器缓存)
http·node.js·浏览器
lunzi_082618 小时前
《图解HTTP》--第6章-HTTP首部
网络·网络协议·http
BINGCHN18 小时前
CVE-2026-49975(HTTP/2 Bomb 远程拒绝服务漏洞)
网络·网络协议·http·cve
无风听海18 小时前
深入解析 ASP.NET Core 中的 Request.Cookies:从 HTTP 协议到加密存储与执行时序
后端·http·asp.net
开发者联盟league21 小时前
docker登录失败解决方法。http: server gave HTTP response to HTTPS client
http·docker·https
米丘21 小时前
HTTP 传输层 TCP 三次握手 / 四次挥手
前端·网络协议·http
草莓熊Lotso1 天前
【Linux网络】深入理解 HTTP 协议(三):静态资源服务、状态码与重定向实战
linux·运维·服务器·网络·c++·http