与HTTP 1.0相比,HTTP 1.1的延迟时间为20秒

我用C编写了一个程序,向HTTP 1.1 POST服务器发送一个HTTP 1.1 POST请求。
使用wireshark进行监控,服务器响应并获取HTTP/1.1 200 OK消息的时间less于一秒,但是接下来需要20秒才能获得FIN, ACK数据包,我相信这是导致recv返回0,指定没有更多的数据。
导致我的程序挂起20秒,等待服务器发送FIN, ACK数据包。

我已经testing了这个HTTP 1.0 ,并没有延迟。 所以我认为这是因为默认情况下, HTTP 1.1将所有连接视为persistent connections
但是我的networking浏览器使用HTTP 1.1 ,并没有延迟,所以我认为我没有做正确的事情。

我有一个想法是,而不是等待recv返回0,我应该检查我是否在其他方式的文档的末尾,但我想不出有任何办法做到这一点。

所以如果有人能向我解释我应该怎么做? 提前致谢。

HTTP 1.1默认保持连接,而1.0不连接。 您可以通过添加标题来请求非保持活动状态

 Connection: close 

这会指示服务器在完成后立即关闭连接。