🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## web服务器的主要操作 1、建立连接-->接受或拒绝客户端请求 2、接受请求-->读取http请求报文 3、处理请求-->解析请求并作出相应的动作 4、访问资源-->从磁盘获取相关请求资源 5、构建响应-->使用正确的首部生成响应报文 6、发送响应-->向客户端发送响应报文 7、记录日志-->记录http访问日志 ## Web服务器处理并发连接请求的架构方式(4种) ### 单线程web服务器(Single-threaded web servers) 一次一个进程/或线程处理一个请求 此种架构方式中,web服务器一次处理一个请求,结束后读取并处理下一个请求。在某请求处理过程中,其它所有的请求将被忽略。 ### 多进程/多线程web服务器 一次多个进程处理多个请求 此种架构方式中,web服务器生成多个进程或线程并行处理多个用户请求,进程或线程可以按需或事先生成。有的web服务器应用程序为每个用户请求生成一个单独的进程或线程来进行响应,不过,一旦并发请求数量达到成千上万时,多个同时运行的进程或线程将会消耗大量的系统资源。 优点:稳定,进程间的影响不大; 缺点:并发量不大 ### I/O多路复用web服务器 一次一个进程处理多个请求 为了能够支持更多的并发用户请求,越来越多的web服务器正在采用多种复用的架构——同步监控所有的连接请求的活动状态,当一个连接的状态发生改变时(如数据准备完毕或发生某错误),将为其执行一系列特定操作;在操作完成后,此连接将重新变回暂时的稳定态并返回至打开的连接列表中,直到下一次的状态改变。由于其多路复用的特性,进程或线程不会被空闲的连接所占用,因而可以提供高效的工作模式。 进程根据状态改变,确定是否需要处理,事件驱动机制;结合通知机制,效率更高。 ### 多路复用多线程web服务器 一次多个进程处理n多个请求 将多进程和多路复用的功能结合起来形成的web服务器架构,其避免了让一个进程服务于过多的用户请求,并能充分利用多CPU主机所提供的计算能力。 web服务器和应用程序服务器 ## web服务器 httpd IIS nginx thttpd lighttpd ## 应用程序服务器jsp tomcat websphere,IBM weblogical,Bea-->Oracle JBoss-->Redhat