RESTful API:需要用户代理字符串?

时间:2011-06-06 16:34:10

标签: rest user-agent

我的团队有一个包含RESTful API的网站。我们正在进行负载测试,因此我们构建了一个小型控制台应用程序来处理请求。此控制台应用程序未设置用户代理字符串,这导致我们的API出错,因为它是我们数据库中的必填字段。

那么,如果请求中不包含用户代理,我是否应该使API更加强大并且只使用默认字符串(即“未知”)?或者,我应该在这种情况下返回400 Bad Request响应吗?我知道其中任何一种都有可能,但我正在寻找标准的方法来做到这一点。

1 个答案:

答案 0 :(得分:20)

由于User-Agent标头并非绝对要求在HTTP请求中出现(spec says标头SHOULD在那里,而不是MUST),您的API将会如果它能够处理它不存在,那就更健壮了。

也就是说,测试应用程序传递“{app app”的User-Agent标识符可能会有好处,这样您就可以在数据库中跟踪它,或者限制或描述您的测试流量

我会提醒您不要使用User-Agent作为客户端应用程序的权威标识符,因为它很容易被欺骗。这听起来不像你那样做,但我想我会提到它。