最佳实践:在http标头中使用什么而不是“User-Agent”来标识应用程序?

时间:2017-03-20 17:37:03

标签: http-headers

看起来您不能总是使用Ajax设置“user-agent”标头。 (user-agent有点是保留关键字,由于安全问题,您无法在某些浏览器上伪造它。)

在调用我的REST服务时,我希望调用者能够给我一个关于谁(哪个应用程序)正在使用它的线索。 注册不是强制性的,它是一种检查是否有一些外部(有价值的)客户在我想要关闭时仍然使用我的网络服务的方法。

所以,如果我不能使用“用户代理”,是否有一些名称可供使用? X-Application-Id? X-UserAgent?

是否有一些文档列出了所有那些X-***标题?

1 个答案:

答案 0 :(得分:0)

根据您的应用程序,可能会也可能无法向您的应用程序添加自定义标头。

根据您的问题,我假设您可以设置自定义标头。您的应用程序的默认设置是使用Official HTTP Specification

中所述的用户代理标记
  

“User-Agent”标头字段包含有关发起请求的用户代理的信息,服务器通常使用该信息来帮助确定报告的互操作性问题的范围,解决或定制响应以避免特定的用户代理限制,以及有关浏览器或操作系统使用的分析。用户代理应该在每个请求中发送User-Agent字段,除非特别配置为不这样做。

如果您选择添加其他自定义标头,则不会对标头名称进行任何限制或建议。请注意,您不应使用RFC 6648中描述的“X-”前缀:

  历史上,应用程序协议的设计者和实现者通常通过在非标准化参数的名称前加上字符串“X-”或类似结构来区分标准化参数和非标准化参数。在实践中,该惯例导致的问题多于解决的问题。因此,本文档在应用程序协议中使用文本(而不是数字)名称来弃用新定义参数的约定。