限制服务器端的并发连接数量?

限制服务器端的并发连接数量?

问题描述:

我正在写我自己的web服务器,我还没有正确处理并发连接。由于不恰当地处理并发连接,我得到了大量的页面加载滞后(我对SYN做出了响应,但我以某种方式丢失了GET数据包,浏览器在一段时间后重试,但需要3秒!)我试图弄清楚是否有指导浏览器停止同时加载事件的方式,因为调试需要很长时间。网络服务器非常精简,不会公开,也不是这个应用程序的主要目的,这就是为什么我愿意以这种方式偷工减料。限制服务器端的并发连接数量?

只需将并发连接限制为1即可,因为使用注册表黑客程序修改该参数以及使用about:config for Firefox都可以使事情完美。

任何其他解决方法的想法也是有用的。我可以想到的一对夫妇:

1 - 指示浏览器缓存没有到期的所有内容,以便缓慢加载(.js,.css和图像文件)只发生一次。我可以在文件末尾添加一个校验和(img src =“/ img/blah.png?12345678”),以确保我是否更新文件,并且正确重新加载。

2 - 添加.js和.css以加载与.html文件内联 - 但这仍然不能解决图像问题,无论如何这只是简单的丑陋。

+0

您是否尝试增加收听积压? – 2009-04-17 19:53:33

所以我从来没有找到一种方法来做到这一点。

我的根本问题是太多的请求进入,并溢出我有限的接收缓冲区在emac内存中。溢出接收缓冲区=丢弃的数据包。解决方案是将所有.js和所有.css文件合并到1 .js和1 .css文件中,以便取消我的请求。我将所有图片,js和css页面设置为一年到期。 html页面被设置为立即过期。我写了一个perl脚本来将md5校验和附加到文件中,以便更改文件。现在效果很好。第一次加载缓存所有内容后,页面立即加载。

我不相信有可能告诉像Firefox这样的浏览器不能同时加载,至少不会通过某个http头或其他东西来加载用户。