我可以同时打开多个HTTP服务器连接吗?

3

我正在编写一个小型软件组件,以从Web服务器(IIS)下载资源。

但似乎该系统的性能不太理想。现在我计划通过生成多个线程来增加与Web服务器的连接数。

我的问题是,我可以使用多个线程来提高性能吗?此外,Web服务器是否允许我生成多个同时连接?

谢谢

Upul


问题不清楚:当您说“该系统的性能不可接受…”时,您是指运行您组件的客户端机器还是Web服务器? - deostroll
对不起,我的意思是指我的软件性能(每秒下载的文档数量)。它正在四核机器上运行。因此,我认为客户端机器不是瓶颈。 - Upul Bandara
1
服务器显然必须处理多个连接。这就是它的作用。如果服务器上有一些工作要做,那么您的性能将会提高。如果服务器仅托管静态内容或简单脚本,则瓶颈可能是服务器机器或连接。(好吧,或者是您软件中的愚蠢错误:P) - naugtur
2个回答

3

所有正确配置的Web服务器都应该能够处理来自同一来源的多个连接。这使得浏览器可以同时从页面下载两个图像,例如。

有些服务器可能会对来自一个客户端的并发连接数量设定上限,但通常这个数字会很高。使用最多6个连接通常是安全的。

至于它是否实际上会提高性能,这取决于您的情况。如果您与互联网骨干线有非常快的连接,并且发现远程服务器的速度没有利用您的连接速度,则在许多情况下,多线程可以提高速度。如果速度已经超出了您的互联网连接或远程服务器的速度极限,则无法做任何事情。


2

Web服务器可以允许同时连接。除非应用逻辑阻止同一客户端打开多个连接,否则不应该存在任何问题。进一步说明我的观点,如果您需要在下载资源之前登录,而您的应用程序不允许多个同时登录,则会卡在那里。出于安全原因,有些应用程序不允许来自同一来源的大量连接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接