8. Handling Incomplete Messages (处理不完整消息)
收到不完整请求消息的服务器(通常是由于取消的请求或触发的超时异常),可以 (MAY) 在关闭连接之前发送错误响应。
收到不完整响应消息的客户端(当连接过早关闭或解码所谓的分块传输编码失败时可能发生),必须 (MUST) 将消息记录为不完整。对不完整响应的缓存要求在 [CACHING] 第 3.3 节中定义。
如果响应在头部分中间终止(在收到空行之前)并且状态码可能依赖于头字段来传达响应的完整含义,则客户端不能假设该含义已被传达; 客户端可能需要重复请求以确定下一步要采取的操作。
使用分块传输编码的消息体如果尚未收到终止编码的零大小块,则是不完整的。使用有效 Content-Length 的消息如果收到的消息体大小(以八位字节为单位)小于 Content-Length 给出的值,则是不完整的。既没有分块传输编码也没有 Content-Length 的响应由连接关闭终止,如果头部分完整接收,则被认为是完整的,除非底层连接指示了错误(例如,TLS 中的"不完整关闭"将使响应不完整,如第 9.8 节所述)。