我从来没有想过,但现在我对幕后几个基本的东西感兴趣。 1)每次请求后,Web服务器是否closures连接? 2)当我有更多的浏览器窗口打开,并从一些networking服务器的所有请求数据,networking服务器是否使用某种标准的套接字通信,以识别哪个连接请求什么? 3)如果用户数多于自由端口(例如同时请求66k)
谢谢 :)
1)通常每个页面请求被限制在一个连接打开和closures。
2)您的计算机更改其所做的每个请求的源端口。 服务器使用IP /源端口组合来跟踪哪些请求来自哪些主机
3)服务器正在应答端口80上的所有HTTP请求。但是对于客户端来说,如果您可以在同一时间从一个客户端产生66K请求,那么您可能会遇到问题,我不确定这一点。
1)大多数现代的networking服务器都支持Keepalive,所以如果浏览器支持它,networking服务器将会为每个连接提供多个请求。
http://en.wikipedia.org/wiki/HTTP_persistent_connection
2)是的,每个连接都得到它自己的套接字,这是一个IP:PORT对。
http://en.wikipedia.org/wiki/TCP_sockets
3)如果你有65535人同时从一台服务器请求,你需要退后一步,考虑你在做什么! :)说真的,除非你非常幸运,否则在遇到这个问题之前,你会感觉到需要进行负载平衡。 一个问题,你可以尽早用尽文件描述符。 bash中的缺省值是1024(请参阅bash联机帮助页中的“ulimit”)。