使用 HTTP Vary 标头来决定处理请求的策略

Posted

技术标签:

【中文标题】使用 HTTP Vary 标头来决定处理请求的策略【英文标题】:Using HTTP Vary header to decide on a strategy to process a request 【发布时间】:2011-02-02 09:44:34 【问题描述】:

我有一个特定的 REST 端点,可以在论坛中创建主题;但我想在处理请求时应用不同的策略。例如如果客户 A 拨打电话,请执行审核。如果客户 B 拨打电话,请执行其他操作。最简单的方法是添加查询参数以进行区分:

 POST /resource?from=xyz

另一个绝妙的想法是使用 Vary HTTP 标头。

 POST /resource
 Vary: xyz

这种方法有什么问题吗?

【问题讨论】:

【参考方案1】:

如果这是出于安全原因,这是非常糟糕的安全性。相反,使用标准的HTTP authentication(或您的自定义身份验证方案)将凭据传递到后端,并且只有那里根据凭据/角色执行所需的任何审核/审核。

【讨论】:

是的,这是区分用户的正确方法。问题,雅克:你为什么打算通过一个资源做两件不同的事情呢?【参考方案2】:

嗯,首先,“Vary”是一个响应头,所以这不是那么出色:-)

【讨论】:

以上是关于使用 HTTP Vary 标头来决定处理请求的策略的主要内容,如果未能解决你的问题,请参考以下文章

HTTP标头“Vary:Accept-Encoding”指定方法及其重要性分析

本地主机已被 cors 策略请求标头字段内容类型阻止访问控制不允许

为啥没有在 CORS 未命中时设置“Vary: Origin”响应?

如何向使用 Selenium Webdriver 处理的 HTTP 请求添加标头或参数?

Nodejs React CORS 策略:请求的资源上不存在“Access-Control-Allow-Origin”标头

HTTP 源头和同源策略的安全问题