Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache Web服务器是否使用一个端口为所有请求提供服务?_Apache_Http_Webserver - Fatal编程技术网

Apache Web服务器是否使用一个端口为所有请求提供服务?

Apache Web服务器是否使用一个端口为所有请求提供服务?,apache,http,webserver,Apache,Http,Webserver,如果Web服务器在端口80上处理流量,则每个客户端必须在其自身和该端口上的服务器之间建立连接。假设客户机维护连接,服务器如何能够并行地为其他客户机提供服务 服务器是否在请求后立即终止与客户端的连接?或者Web服务器是否会动态生成新端口供客户端使用,以便端口80可供新连接使用?端口是通信通道的一端 服务器初始值设置了一个侦听端口(HTTPS服务器为80)。客户端创建一个端口(操作系统将为此端口分配一个随机的可用端口号)并连接到侦听端口。此时,通信信道由服务器的IP地址、服务器的端口80、客户机的I

如果Web服务器在端口80上处理流量,则每个客户端必须在其自身和该端口上的服务器之间建立连接。假设客户机维护连接,服务器如何能够并行地为其他客户机提供服务


服务器是否在请求后立即终止与客户端的连接?或者Web服务器是否会动态生成新端口供客户端使用,以便端口80可供新连接使用?

端口是通信通道的一端

服务器初始值设置了一个侦听端口(HTTPS服务器为80)。客户端创建一个端口(操作系统将为此端口分配一个随机的可用端口号)并连接到侦听端口。此时,通信信道由服务器的IP地址、服务器的端口80、客户机的IP地址以及客户机的端口号进行唯一描述。如果您查看
netstat
的输出,您将在连接的各个阶段看到许多套接字/端口:

symcbean@skynet ~ $ netstat -t
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 192.168.1.202:47206     stackoverflow.com:https ESTABLISHED
tcp        0      1 192.168.1.202:50894     aba1c1ff9d2ec5376.:smtp SYN_SENT
tcp        0      0 192.168.1.202:47210     stackoverflow.com:https ESTABLISHED
tcp        0      0 192.168.1.202:60806     ec2-34-213-90-136:https ESTABLISHED
tcp        0      0 192.168.1.202:51124     151.101.1.69:https      ESTABLISHED
tcp        0      0 192.168.1.202:34784     i0.wp.com:https         ESTABLISHED
tcp        0      0 192.168.1.202:54082     lhr25s14-in-f10.1:https ESTABLISHED
tcp        0      0 192.168.1.202:38412     172-155-250-212.s:https ESTABLISHED
服务器在多个通道上并发处理通信的具体方式各不相同。我从未见过一台服务器一次只处理一个连接

在(prefork)ApacheWebServer上,打开侦听套接字的进程将连接转交给一个预先存在的子进程来处理。有些服务器作为单个进程运行,但有多个执行线程。一些线程(如nginx和lighthttpd)作为单个线程运行,并首先关注发送数据的通道