多个 HTTP 授权标头?

2023-12-03

是否可以在 HTTP 消息中包含多个授权标头?具体来说,我想包括一种承载令牌类型(传递 OAuth 访问令牌)和一种基本类型(传递 base64 编码的用户名:密码)。

GET /presence/alice HTTP/1.1 
Host: server.example.com
Authorization: Bearer mF_9.B5f-4.1JqM
Authorization: Basic YXNkZnNhZGZzYWRmOlZLdDVOMVhk

我认为没有理由这是不可能的,只是想与社区一起审查以确定。


**** 2021 年 2 月更新 *** 请阅读对此回复的评论。他们的总体结论似乎是某些 Web 服务器接受多种授权方案,但这违反了 RFC 7230/7235 ****

这应该是可能的,您只需在字段值之间添加逗号,例如:

GET /presence/alice HTTP/1.1 
Host: server.example.com
Authorization: Bearer mF_9.B5f-4.1JqM, Basic YXNkZnNhZGZzYWRmOlZLdDVOMVhk

这是定义在RFC7230,第 3.2.2 节,场序:

发送者不得在消息中生成具有相同字段名称的多个标头字段,除非该标头字段的整个字段值被定义为逗号分隔列表[即#(values)]或者标头字段是一个很好的-已知的异常(如下所述)。

接收者可以将具有相同字段名称的多个标头字段组合成一个“字段名称:字段值”对,而不更改消息的语义,方法是将每个后续字段值按顺序附加到组合字段值,并用逗号。因此,具有相同字段名称的标头字段的接收顺序对于组合字段值的解释非常重要;代理在转发消息时不得更改这些字段值的顺序。

我不知道是否所有网络服务器都接受这一点——在撰写本文时,我正在与一位同事争论它是否应该起作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多个 HTTP 授权标头? 的相关文章

随机推荐

  • iPhone 向 Google Apps 发送数据并从 Google Apps 检索数据?

    我见过一些 iPhone 应用程序具有将数据导出到 Google Apps 文档或电子表格的功能 我想为我的 iPhone 应用程序添加类似的功能 有相关的 API 吗 另一个方向怎么样 有没有办法从 Google Apps 电子表格获取数
  • JTable 与自定义 TableModel

    我正在尝试在 Java GUI 上实现 JTable 它可以用文件中的值填充自身 并允许用户对各种单元格进行修改 由于我在 Netbeans IDE 中使用 GUI 编辑器 因此我的第一反应是从调色板将 JTable 添加到我的表单中 但是
  • Swift 自定义 UITableViewCell 不显示数据

    我是 Swift 和 iOS 开发的新手 我正在尝试创建一个自定义 UITableViewCell 我已经在 UIViewController 内的 UITableView 顶部的主情节提要中创建了单元格 当我加载默认单元格之一时 我能够用
  • Jersey:将所有 POST 数据消耗到一个对象中

    我在我的应用程序中使用 Jersey 1 8 我正在尝试消费POST服务器上的数据 数据的类型是application x www form urlencoded 有没有一种方法可以获取一个对象中的所有数据 也许是Map
  • RSA 我应该使用 X.509 还是 PKCS #1

    使用案例 我有一个用例 其中客户端生成私钥和公钥 并将 Base 64 编码的公钥发送到服务器 在服务器端 我将使用此公钥对消息进行加密 并将加密的消息发送到客户端 客户端使用其私钥对其进行解密 商定的算法是 RSA 问题出在服务器端 我发
  • PHP mail() 附件已损坏

    我一直在努力尝试使用 PHP 发送带有附件的电子邮件 它曾经有效 但消息正文被打乱 现在我的邮件正文可以正常工作 但附件已损坏 我曾经对消息正文使用 Base64 编码 但现在使用 7 位 谁能告诉我我做错了什么 PS请不要告诉我应该使用预
  • 页面刷新后 $stateParams 为 null

    当通过 state go 传递 stateParams 时 当我直接单击链接时 它会正确显示 但在页面刷新或通过另一个窗口打开后会变为 null 我有以下功能 scope urlvalues function url page var re
  • 如何使用Http缓存控制保存firestore请求?

    假设我有一个运行 firebase firestore 数据库的网络 移动应用程序 我的应用程序设置为主要服务动态内容完全存储在 firestore 中 所以我们讨论的是缓存动态内容 例如 如果用户加载页面 A 它将向 firestore
  • python-捕获分子的晶格结构-无法正常工作

    我有这个问题 创建一个程序 构造一 1 维的晶格并 100000 个站点 在这个格子中随机放置一些陷阱 分子 其浓度为 c 随机放置 1 个粒子 放在格子上并让它执行随机游走 在这次行走中 您不会设置时间限制 即您不会声明 具体步数 当粒子
  • 为自定义视图添加圆角

    我对 Android 很陌生 我正在尝试在自定义视图 使用画布 上绘图 我那里有一些线条和矩形 关键是 我现在想要给整个视图提供圆角 但这效果不好 因为我在视图上绘图 而我的绘图位于圆角之上 这些圆角是通过资源添加的 是否可以添加覆盖整个视
  • 在 Cloud Build 步骤中执行 BigQuery 查询

    我正在使用 Cloud Buildgcloud建设者 我覆盖entrypoint to be bq这样我就可以在构建步骤中运行一些 BigQuery SQL 以前 我将 SQL 直接嵌入到 Cloud Build 的 YAML 配置中 这工
  • ACRA 与 android:如何在报告崩溃之前执行代码

    我正在使用 ACRA 和我的 Android 应用程序 我的问题是 当发生崩溃时 如何确保在报告崩溃之前执行一些代码 我的意思是我想在崩溃发生时添加一些自定义变量 以便我知道应用程序处于什么状态 请帮忙 谢谢 按照描述实现您自己的发件人he
  • Sublime Text 3 查找在文件末尾停止

    如果我有一个文本文件 1 foo 2 foo 3 foo 4 foo ctrl f will find the 1 then 2 and after finding 4 it ll say No results 以前只是跳转到1 再次 在我
  • 在Python中使用函数之前应该先定义它吗?

    函数应该在使用之前定义吗 但为什么下面的代码有效 def main dog def dog print This is a dog if name main main 我的意思是dog 是在调用后定义的 这是如何工作的 实际上不是 在调用后
  • BigQuery 有区域限制或其他区域之间有延迟吗?

    我想从 GCE 实例将数据存储在 BigQuery 上 并从不同区域实例查询它 例如 存储来自欧盟实例的数据 查询来自美国实例的数据 这是否可以毫不拖延地实现 我认为将数据复制到其他区域需要一些时间 BigQuery 有区域限制 很少有 像
  • 将字符串转换为小数,保留分数

    我正在尝试转换1200 00 to decimal but Decimal Parse 删除 00 我尝试过一些不同的方法 但它总是删除 00 除非我提供一个不同于 0 的分数 string value 1200 00 Method 1 v
  • Tensorflow 中的 8 位量化错误

    我一直在尝试新的8位量化功能在 TensorFlow 中可用 我可以毫无问题地运行博客文章中给出的示例 googlenet 的量化 并且它对我来说效果很好 现在 我想将同样的方法应用于更简单的网络 因此 我使用了 CIFAR 10 的预训练
  • 为什么Volley DiskBasedCache拼接时不直接获取缓存文件名

    Creates a pseudo unique filename for the specified cache key param key The key to generate a file name for return A pseu
  • SpelEvaluationException 找不到方法

    当我尝试使用 SpEL 将 User 传递给服务方法时 我面临下一个问题 evaluate expression commonService userTest user result flowScope user 春天抛出了以下异常 org
  • 多个 HTTP 授权标头?

    是否可以在 HTTP 消息中包含多个授权标头 具体来说 我想包括一种承载令牌类型 传递 OAuth 访问令牌 和一种基本类型 传递 base64 编码的用户名 密码 GET presence alice HTTP 1 1 Host serv