为什么我们更喜欢授权 Header 将不记名令牌发送到服务器而不是 URL 编码等其他技术

Why do we prefer Authorization Header to send bearer token to server over other techniques like URL encoding

为什么授权 header 主要用于向服务器发送不记名令牌?为什么我们不将我们的授权令牌作为 URL 参数或 post 作为 json 负载发送给请求 body?

Headers 非常适合保存这些数据,它们与请求类型无关。

您可以在 body 中发送授权令牌,甚至可以在 Content-TypeContent-Length、缓存 headers 中发送任何其他内容,但请求类型不同(POST ,GET..) 可能有不同的请求 body 格式。 GET 使用 query parameters POST/PUT 以编码形式在 body 中发送数据(使用 Content-Type: application/x-www-form-urlencoded 让服务器知道传入的数据格式) , Content-Type: application/json 与 JSON 在 body, XML 等。多部分请求的情况变得更加复杂(检查此 https://whosebug.com/a/19712083/1017363)。

因此,正如您在 body 中看到的授权令牌或查询使客户端和服务器端的事情变得更加复杂。客户端应该知道如何在每个请求上 "fit" 授权令牌,然后服务器应该知道如何读取这个值。