区分公共API响应与经过身份验证的API响应

时间:2014-03-27 19:43:01

标签: http http-status-codes

我正在构建一个API,我想在我的网络应用程序和面向公众的网站上使用它。这很简单:

  1. 如果发出经过身份验证的请求,请返回资源的所有数据。
  2. 如果发出未经身份验证的请求,请返回资源的公开/已发布数据。
  3. 我想我会考虑使用状态代码来区分基于上述两种行为的响应,而不是在响应中使用元数据。

    第一种行为使用状态代码200,第二种行为使用206是否可以接受?

    根据http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

    ,在这种情况下,206是否正确使用,我不清楚

1 个答案:

答案 0 :(得分:0)

  

第一种行为使用状态代码200,第二种行为使用206是否可以接受?

不,这是不可接受的。 206 Partial Content是响应显式请求给出的完整响应中某些特定字节范围的状态。正如section 10.2.7所述:

  

请求必须包含一个范围标题字段(section 14.35),表示所需的范围

在您的情况下,"未经身份验证的请求"不会本身包含一个Range标头,因此206响应会违反规范。