我有一个 RESTful 资源,其表示只能由经过身份验证的客户端检索。如果未经身份验证的客户端发出 GET 请求,将返回 401。
另一方面,我希望未经身份验证的客户端能够确定资源是否存在。在这种情况下,如果资源确实存在,我正在考虑让 HEAD 请求返回 200,如果不存在则返回 404。
RFC 2616 在第 9.4 节中对 HEAD 请求进行了如下说明
响应 HEAD 请求的 HTTP 标头中包含的元信息应该与响应 GET 请求发送的信息相同。
这种方法会被认为是适当的 RESTful 吗?
作为替代方案,我可以让 GET 和 HEAD 请求为不存在的资源返回 404,如果请求存在但客户端无权返回 401。