我应该使用自定义标头还是用户代理标头将设备信息发送到服务器

问题描述 投票:0回答:2

每次向服务器发送 API 请求时,我都想发送设备类型和操作系统版本等信息(来自我的移动应用程序)。我的第一个想法是使用用户代理,但我想知道使用自定义 http 标头(例如“X-deviceType”或/和“X-osVersion”)是否有任何好处。

http http-headers user-agent
2个回答
0
投票

我正在使用 X-Device HTTP 标头。

在大多数情况下运行良好,但是我注意到来自代理后面的一些请求似乎正在从该标头中剥离数据。


0
投票

请记住,客户端可以使用经过调整的移动浏览器或代理来更改用户代理。

但是通过设置自定义标头,您可以表明您正在寻求收集此类数据。我们认为法律允许您收集它。它可能会导致恶意行为者更改/删除它们,或者也可能会创建一个机器人来执行此操作。另请注意,客户端可以使用代理更改标头及其内容。

有趣的是,RFC6648规定“某些参数将永远被标准化。在这种情况下,特定于实现和私人使用的参数至少可以包含组织的名称(例如,“ExampleInc-foo”或,与 [RFC4288]、“VND.ExampleInc.foo”一致)或主域名(例如“com.example.foo”或统一资源标识符 [RFC3986],例如“http://example.com/foo” )。”

一个合法的用例是委托用户代理解析客户端。一个好处是节省服务器上的计算资源,但代价是修改网络频带切换。这可能或不能与上述很好地平衡。

© www.soinside.com 2019 - 2024. All rights reserved.