C# 在c语言中理解持久http连接时遇到问题#
我不太明白持久连接到底是如何工作的 所以keepalive属性是默认设置的,据我所知,这应该可以保持连接打开 所以现在我通过一个HTTPWebRequest的帖子发送我的数据。 但每次我给收件人寄东西时,我都会这样做 所以是这样的, 将数据从客户端发布到服务器,返回对发布的响应 但接下来我只发送另一个帖子,而不是使用我已经打开的连接。所以我觉得我发送的信息比实际需要的要多。 我不能只打开一次连接,然后通过此连接继续通信吗 很抱歉,我对这个主题的理解很差,但这是我第一次真正研究网络协议 提前谢谢C# 在c语言中理解持久http连接时遇到问题#,c#,web-services,http,client-server,C#,Web Services,Http,Client Server,我不太明白持久连接到底是如何工作的 所以keepalive属性是默认设置的,据我所知,这应该可以保持连接打开 所以现在我通过一个HTTPWebRequest的帖子发送我的数据。 但每次我给收件人寄东西时,我都会这样做 所以是这样的, 将数据从客户端发布到服务器,返回对发布的响应 但接下来我只发送另一个帖子,而不是使用我已经打开的连接。所以我觉得我发送的信息比实际需要的要多。 我不能只打开一次连接,然后通过此连接继续通信吗 很抱歉,我对这个主题的理解很差,但这是我第一次真正研究网络协议 提前谢谢
Daniel
KeepAlive
被添加到HTTP协议中以提高服务器端性能
HTTP通常是一种无状态协议。所有状态都保留为cookie或服务器会话。如果KeepAlive
设置为true,则客户端和服务器可能会保持其基础TCP连接处于活动状态
通常为KeepAlive
设置一个超时,这样,如果客户端没有发出任何其他请求,该连接就会关闭
此功能通常在不同的平台上以不同的方式实现,例如,我看到Java实现中存在问题,它们不遵守超时,服务器关闭连接,因此客户端再次连接的尝试失败,因为它假定连接仍然打开
请参阅RFC文档。如果服务器支持,您可以重新使用该连接。。。。包括您和服务器之间的任何代理。这就是它有时会掉下来的地方。它被附加到HTTP1.0上,并正式添加到1.1中 基本上,您的客户机会用一个特殊的头询问“我可以保持此连接处于活动状态吗”,然后如果服务器支持它,它会回答“是”,然后客户机可以在同一套接字上发送更多请求 您的客户端代码也必须支持此功能。净应该是好的