[英]Trouble understanding persistent http connections in c#
我不太了解持久连接是如何工作的。
因此,据我所知,默认情况下设置了keepalive属性,这将使我的连接保持打开状态。
因此,现在我正在通过HTTPWebRequest上的POST发送数据。 但是,每次我向收件人发送邮件时,我都会这样做。
就像这样:从客户端到服务器的POST数据,返回对该帖子的响应。
但是接下来我只是发送另一个POST,而不是使用我已经打开的连接。 因此,我感觉自己的发送量超出了实际需要。 我不能只打开一次连接然后通过该连接继续通信吗?
很抱歉,我对这个主题的理解不够,但这是我第一次真正使用网络协议。
提前致谢
丹尼尔
KeepAlive
添加到HTTP协议以提高服务器端性能。
HTTP通常是无状态协议。 所有状态都保留为Cookie或服务器的会话。 如果KeepAlive
设置为true,则客户端和服务器可能会保持其基础TCP连接处于活动状态。
通常为KeepAlive
设置一个超时,以便如果客户端未发出任何其他请求,则此连接将关闭。
此功能通常在不同的平台上以不同的方式实现,例如,我见过Java实现的问题,即它们不考虑超时,服务器关闭了连接,因此客户端再次尝试连接失败,因为它假定连接仍处于打开状态。
参见RFC文档这里 。
如果服务器支持该连接,则可以重新使用该连接...。 包括您与服务器之间的所有代理。 它有时会掉在哪里。 它基于HTTP 1.0并在1.1中正式添加。
基本上,您的客户端要求使用特殊的标头询问“我可以保持此连接处于活动状态”,然后如果服务器支持它,则回答“是”,然后客户端可以在同一套接字上发送更多请求。
您的客户端代码也必须支持此功能。 .Net应该没问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.