Rest 不同情况下的Http允许标头

Rest 不同情况下的Http允许标头,rest,http,http-headers,Rest,Http,Http Headers,我正在尝试创建一个有效的web服务,但我对头ALLOW和他的cors版本有一些问题 假设GET/resource/42是有效的,并且头文件allow='GET,PUT' 在以下情况下,我应该怎么做: 1) 如果未找到资源(401) 2) 是否需要资源验证(401) 3) 如果资源不属于用户(403) 4) 如果请求因缺少api版本头而被拒绝(400) 现在,如果我用选项替换“GET”,我会遇到完全相同的问题 也许我缺乏HTTP方面的知识,但我找不到完整准确的文档。无论如何,感谢您的帮助。这是一个

我正在尝试创建一个有效的web服务,但我对头ALLOW和他的cors版本有一些问题

假设GET/resource/42是有效的,并且头文件allow='GET,PUT'

在以下情况下,我应该怎么做:

1) 如果未找到资源(401)

2) 是否需要资源验证(401)

3) 如果资源不属于用户(403)

4) 如果请求因缺少api版本头而被拒绝(400)

现在,如果我用选项替换“GET”,我会遇到完全相同的问题


也许我缺乏HTTP方面的知识,但我找不到完整准确的文档。无论如何,感谢您的帮助。

这是一个开始编写响应代码和方法类型文档的好地方,它是rfc规范:

(完整的HTTP 1.1规范包含在rfc 7230-7237中)

1) 未找到资源-通常最好以404返回,但如果您知道它是故意丢失的,则可以返回410

2) 所需资源授权-一般为403(但授权是一个更大的主题)

3) 资源不归用户所有-资源所有权不在规范范围内-您的应用程序可能希望为其他人拥有的资源提供服务。响应只描述了状态。如果您允许提供资源,您可以发送基于200的常规响应。如果您仅在确定所有权后才明确允许资源,并且您发现客户机未标识为所有者,则可以发送403响应,或者如果您还想隐藏资源存在的信息,则可以发送404,这更取决于您的特定需要

4) 请求被拒绝,因为缺少api版本标头-是400适用于此处。您可以在响应中包含一条消息,以解释为什么它被视为错误请求

对于选项请求,有许多其他帖子讨论与特定请求相关的响应代码,例如:
200响应可以用于传达资源的可用选项,但如果您想传达请求不好,可以发送普通400请求。

完美,因此我将回答4xx的选项请求。。。我很确定200是强制性的。感谢您的帮助和链接