难以理解c#中的持久性http连接

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

要回复问题请先登录注册