【发布时间】:2017-03-25 19:06:49
【问题描述】:
是否每个 HTTP 请求都需要与响应配对?当您执行一些 POST 或 DELETE 操作时,我的理解是有时您不需要发回数据。我一直被告知要寄回一个空对象,但这有必要吗?另外,发送状态码是否被视为响应?
【问题讨论】:
-
您的问题回答正确了吗?如果是,也许你可以“接受”我的回答?
标签: http request response http-status-codes
是否每个 HTTP 请求都需要与响应配对?当您执行一些 POST 或 DELETE 操作时,我的理解是有时您不需要发回数据。我一直被告知要寄回一个空对象,但这有必要吗?另外,发送状态码是否被视为响应?
【问题讨论】:
标签: http request response http-status-codes
Q1:每个 HTTP 请求都需要与响应配对吗?
是的,除非客户取消请求。实际上,一个 HTTP 请求需要与一个或多个 HTTP 响应配对。根据RFC7231:
服务器侦听请求的连接,解析收到的每条消息,解释与识别的请求目标相关的消息语义,并使用一条或多条响应消息响应该请求。
Q2:当您执行一些 POST 或 DELETE 操作时,我的理解是有时您不需要发回数据。我一直被告知要发回一个空对象,但这有必要吗?
没有必要发回一个空对象(有效负载)。根据RFC7230,不需要响应载荷:
服务器通过发送一个或多个 HTTP 响应消息来响应客户端的请求,每个消息都以...开头,最后是包含有效负载正文的消息正文(如果有)。
然而,虽然您不必“发回数据”,但您仍然需要发回消息,例如 HTTP 响应状态代码和一些必要的响应标头。
Q3:发送状态码是否被视为响应?
是的。理论上,一个最小的 HTTP 响应只能包含 HTTP 协议版本、状态码和状态码文本短语。
【讨论】: