是否有用于移动http请求的标准标头,用于指定设备类型,操作系统版本,应用程序版本等?

Mic*_*ael 5 api android http http-headers ios

我正在为我的移动客户端创建一个JSON API,想知道是否已经有像User-Agent这样的标准来发送诸如

  • 设备类型
  • 设备操作系统
  • 应用程式版本

或我的服务器想知道的有关客户端设备的任何其他信息...

由于移动用途已变得越来越流行,因此,如果有某种标准,这似乎是合理的。

  1. 我是否应该要求我的客户在User-Agent标头中发送所有这些信息(即使浏览器未发送请求)?
  2. 我是否应该为这些类型的字段创建自定义标题,并为它们添加前缀X-MyApp-...

我知道我可以选择使用我喜欢的任何方法,因为它是我的api,我可以决定自己想要什么,但是我很好奇在这方面是否有任何行业标准。

谢谢

nei*_*lco 4

没有用于传送特定于设备的信息的标准 HTTP 标头。我无法透露 Android 平台公开了哪些信息,但我知道任何使用 NSURLConnection 发出 HTTP 请求的 iOS 应用程序都使用自定义的用户代理字符串,其格式如下:

<App Name>/<App Version> CFNetwork/<CFNetwork version> Darwin/<kernel version>

有一个非常方便的 CFNetwork 版本列表,您可以使用它来尝试确定进行调用的设备上运行的 iOS 版本。然而,值得注意的是,有时 CFNetwork 和内核版本在 iOS 版本之间不会发生变化。例如,CFNetwork/609.1.4 Darwin/13.0.0iOS 6.1.2、6.1.3 和 6.1.4 使用。

最好的选择是定义自己的 X-Header 并准确传输您需要的信息。添加 X-Header 前缀将减少与其他应用程序发生标头冲突的可能性,但由于向请求添加标头很简单,因此您不能排除欺骗或无效数据。