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

时间:2014-04-27 17:55:05

标签: android ios api http http-headers

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

  • 设备类型
  • device os
  • app version

或者我的服务器想了解客户端设备的任何其他事情......

由于移动设备的使用越来越受欢迎,如果有某种标准似乎是合理的。

  1. 我是否应该要求我的客户在User-Agent标题中发送所有这些信息(即使请求不是由浏览器发送的)?
  2. 我是否应该为这些类型的字段创建自定义标头,并可能在其前面添加X-MyApp-...
  3. 我知道我可以选择使用我喜欢的任何方法,因为它是我的api,我可以决定我想要的任何东西,但我很好奇是否有任何行业标准。

    由于

1 个答案:

答案 0 :(得分:3)

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

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

您可以使用pretty handy list of CFNetwork versions来确定拨打电话的设备上运行的iOS版本。但是,值得注意的是,有时CFNetwork和内核版本在iOS版本之间不会发生变化。例如,iOS 6.1.2,6.1.3和6.1.4使用CFNetwork/609.1.4 Darwin/13.0.0

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