1

如果服务器期望设置 ETag 标头但请求不包含它,则服务器发送的适当 HTTP 响应代码是什么?最合适的是 BAD REQUEST (400) 吗?

4

3 回答 3

2

RFC 2616 中的描述将状态403定义为“服务器理解请求,但拒绝执行它”。

由于明确由服务器解释请求被拒绝的原因,因此带有“所有请求必须包含 ETag 标头”的正文的 403 似乎是正确的响应。

RFC 中将状态 400 定义为由于“格式错误的语法”,这与接收您不喜欢外观的请求不同。

于 2013-04-17T10:00:47.493 回答
2

如果您的意思是缺少条件请求标头字段(例如 If-None-Match),那么答案将是状态 428(请参阅https://www.rfc-editor.org/rfc/rfc6585#section- 3)。

于 2013-04-17T13:57:16.113 回答
0

它是有条件的 GET 吗?因为如果无法验证客户端缓存的有效性,那么带有完整正文的普通 200 OK 对我来说似乎完全合适。

于 2013-04-17T12:39:56.763 回答