使用 headers 作为身份验证令牌的主要原因是什么?

What is the main reason to use headers for authentication tokens?

刚刚跟上 angular 中的身份验证。我读到的很多是 headers 的用法来传递一个令牌,如下所示: 我的问题是将令牌传递给后端的每个请求使用 headers 的主要原因是什么?这只是为了更清洁的解决方案还是为了性能?

如果您与服务器的连接是 HTTPS,那么 HTTP HEADERS 也会被加密。哪里没有查询参数。

为此使用 headers 不是 Angular 的事情,许多 API 使用这些,例如服务器可以通过仅检查 headers 而不是请求 body。这允许更好地分离身份验证和授权功能之间的关注点,以及服务器上的有效负载处理。

上游服务器(其中可能有很多层)可以添加和删除 headers,并且通常比将此数据包含在请求 body 中更有效地路由和授权您的请求。

Headers 还将身份验证数据排除在 URL 请求参数之外,这看起来更干净,但也会阻止身份验证数据出现在浏览器历史记录等中

一个缺点可能是,如果您通过网络代理发出请求,代理可能会删除一些 headers,特别是如果它们是 non-standard 个名字。