【发布时间】:2026-01-16 17:55:02
【问题描述】:
HTTP 是客户端-服务器通信,客户端始终发起连接,服务器响应。
在使用 HTTP 1.1 的客户端服务器通信中,会发生以下步骤: 1. 客户端向服务器发送请求。 2. 服务器向客户端发送响应,带有响应消息和状态码。
我的问题是协议中如何处理数据传输?我知道 HTTP 是无状态的,而且它要么是全有,要么全无,但你如何证明这一点?服务端和客户端的握手情况如何?
例如:当服务器将响应发送回客户端时,如果发送了 50% 的数据,然后出现连接丢失,会发生什么情况……那么在这种情况下会发生什么情况?客户端会等待剩余 50% 的消息,还是会在服务器尝试再次发送 100% 的消息时开始新的传输? (同步通信中)
【问题讨论】:
-
这就是此类请求超时的原因。如果在超时时间内没有给出响应,则假定连接丢失或错误。
-
是的,我在超时时知道了,但是我们如何确认从服务器接收到客户端的 100% 消息?客户端是否会在协议中向服务器发回任何可以验证的内容?
-
是的! http状态码!看这里:iana.org/assignments/http-status-codes/http-status-codes.xhtml
-
(请注意,你问的是 HTTP,我想你是在关注 TCP 层发生的事情)
-
是的,感谢您的纠正。很抱歉用我愚蠢的问题打扰你。当有 200, OK 时,这是否意味着服务器正在向客户端发送 200, OK 消息被发送到客户端,并且客户端也向服务器发送 200, OK?那是2路吗?