我想了解Web服务器如何处理大量同时发送的HTTP请求和响应。请记住,我是网络编程的新手。
Web服务器可以同时在端口80上发送多个HTTP响应吗?或者回复必须“序列化”?
Web服务器是否以序列化方式接收请求?如果是这样,那么插入优先级队列可能需要很快。
答案 0 :(得分:2)
简短的回答是,大多数Web服务器将通过处理单独线程/进程上的每个请求(通过从线程池中拉出线程或创建新线程)来并行处理传入请求。通常,可以同时处理的请求数量上限(例如线程池中的最大线程数)。超出该上限意味着待处理的请求将在队列中等待,直到另一个请求完成。如果服务器需要对请求进行一些异步处理,它可能会将线程返回到线程池,直到它准备好完成请求(例如在ASP.NET中使用IHttpAsyncHandler)。
服务器实际上并不在端口80上发回请求。客户端将为该特定连接提供自己的端口。
答案 1 :(得分:2)
我也很新,但对网络通信有一点了解。
它不能同时响应多个请求,一次响应多个请求,正常运行时非常非常快。
当通过网络发送信息而不管它是什么端口时,它将通过数据包发送出去。 在该数据包中是标题,在您的情况下,您可以定义它正在尝试使用的端口号以及其他所需信息。 标题后是数据。数据包中数据的大小因设置而异,即计算机,路由器/交换机以及其他相关内容。 最后是页脚,其中包含有关是否是最后一个数据包的指示,如果没有,则在下一个数据包中寻找什么。
希望能帮助回答你的问题并提出更多问题。