假设我看到一个带有其标头的 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 是无状态的,因此您可以在不保留状态的情况下完成工作(即使这可能更容易)。我不明白为什么您需要知道是否有主体,您只需读取数据并查看标头后是否有数据即可。