每条 HTTP 响应都应该有精确的 Content-Length 首部,用以描述响应主体的尺 寸。若实际传输的实体长度与 Content-Length 并不匹配(或没有 Content-Length)时,接收端就应该质疑长度的正确性。

    如果一个事务,不管是执行一次还是很多次,得到的结果都相同,这个事务就是幂 等的。客户端不应该以管道化方式传送非幂等请求(比如 POST)。 否则,传输连接的过早终止就会造成一些不确定的后果。要发送一条非幂等请求, 就需要等待来自前一条请求的响应状态。

    3.5.1、正常关闭连接

    完全关闭与半关闭

    完全关闭:TCP 连接的输入和输出信道都关闭,套接字调用 close()。

    关闭连接的输出信道总是很安全的。

    问题:

    解决: 想要正常关闭连接的应用程序应该先半关闭其输出信道,然后周期性地检查其输入信道的状 态(查找数据,或流的末尾)。如果在一定的时间区间内对端没有关闭输入信道,应 用程序可以强制关闭连接,以节省资源。