我如何知道 HTTP 响应是对 HEAD 请求的响应?

我如何知道 HTTP 响应是对 HEAD 请求的响应?

假设我看到一个带有其标头的 HTTP 响应。

我如何知道这是否是对HEAD请求的回应?

RFC 2616指出如果200 OK是响应的状态,则只有当它不是对请求的响应时,它才应该包含消息主体HEAD。所以我需要知道它是否是对 HEAD 的响应。

我是否必须保持状态并记住它是否是对的响应HEAD,或者是否只能从响应字段中知道?

谢谢。

答案1

为了让您看到响应有何不同,您可以使用 telnet:

> telnet myserver 80
> GET / HTTP/1.0

> telnet myserver 80
> HEAD / HTTP/1.0

...但作为半径评论说,你似乎已经回答了你自己的问题;如果你收到代码 200 作为响应,但没有正文,则假设它是对 HEAD 请求的响应。

答案2

正如 RFC 2616 所述,HTTP 1.1 是无状态的,因此您可以在不保留状态的情况下完成工作(即使这可能更容易)。我不明白为什么您需要知道是否有主体,您只需读取数据并查看标头后是否有数据即可。

相关内容