我不太清楚持久连接是如何工作的。
因此,默认设置keepalive属性,这应该保持我的连接打开,据我所知。
所以现在我通过HTTPWebRequest上的POST发送我的数据。 但每次我向收件人发送内容时,我都会这样做。
所以它是这样的: POST数据从客户端到服务器,返回对帖子的响应。
但接下来我只发送另一个POST,而不是使用我已经打开的连接。所以我觉得我发送的东西比实际上要多。 我不能只打开一次连接然后通过这个连接继续通信吗?
我很遗憾对这个问题的理解不足,但这是我第一次真正使用网络协议。
提前致谢
丹尼尔
答案 0 :(得分:1)
KeepAlive
已添加到HTTP协议中以提高服务器端性能。
HTTP通常是无状态协议。所有状态都保留为cookie或服务器会话。如果KeepAlive
设置为true,则客户端和服务器可能会使其底层TCP连接保持活动状态。
通常为KeepAlive
设置超时时间,以便在客户端未发出任何其他请求时,此连接已关闭。
此功能通常在不同平台上实现不同,例如我看到Java实现的问题,他们不尊重超时,服务器关闭连接,因此客户端再次尝试连接失败,因为它假定连接仍然打开。 / p>
请参阅RFC文档here。
答案 1 :(得分:0)
您可以重复使用服务器支持的连接.... 包括您和服务器之间的任何代理。哪个地方有时会倒塌。它被添加到HTTP 1.0并正式添加到1.1中。
基本上,您的客户端使用特殊标头询问“我可以保持此连接活动”,然后如果服务器支持它,它会回复说“是”,然后客户端可以在同一个套接字上发送更多请求。
您的客户端代码也必须支持此功能。 .Net应该没问题。