Jos*_*osh 4 c windows post http
我在C中编写了一个HTTP 1.1 POST向Web服务器发送请求的程序.
使用wireshark监视它,服务器响应并获取HTTP/1.1 200 OK消息需要不到一秒的时间,然后再需要20秒来获取FIN, ACK数据包,我相信这是导致recv返回0的原因,不再指定数据.
导致我的程序挂起20秒,等待服务器发送FIN, ACK数据包.
我已经测试了这个HTTP 1.0,并且没有延迟.所以我认为这是因为HTTP 1.1默认情况下将所有连接视为persistent connections.
但是我的网络浏览器使用HTTP 1.1并且没有延迟,所以我认为我做的不对.
我有一个想法,而不是等待recv返回0,我应该检查我是否在文档的末尾以其他方式,但我想不出有任何办法这样做.
所以如果有人能向我解释我应该怎么做呢?提前致谢.
HTTP 1.1默认为keep-alive连接,而1.0不默认.您可以通过添加标题来请求非保持活动状态
Connection: close
Run Code Online (Sandbox Code Playgroud)
它指示服务器在连接完成后立即关闭连接.