[web容器] web容器的作用和常见的web容器

1.什么是网络容器

设想服务器接受到请求后的处理逻辑:

a.接受请求并进行预处理(建立连接、组装网络报文切片、取出报文头和报文体、编码转换)

b.按照请求启动对应服务的线程,服务线程处理业务逻辑,返回结果

c.结束服务线程,封装结果(包括异常处理),处理编码后发回给客户端

其中a和c在不同的网络服务中是大致相同的,可以抽取出来单独作为一部分(即网络容器,如tomcat)。b则是对应不同网络服务的业务逻辑(如servlet)

一次网络请求流程可以抽象如下:

a.client向服务器发送http request(实际上发送到容器的端口并被接收)

b.client创建对应servlet的线程实例,创建对应的request和response

c.启动servlet线程,传入request,获取返回的结果封装进response

d.向client返回http response

2.网络容器的功能

这里以servlet作为网络业务逻辑来表述。

a.支持通信,封装建立连接、接受请求和返回结果的细节。客户端->web 容器->网络服务程序

b.生命周期管理,控制网络业务程序实例的创建和销毁。如servlet的加载、初始化、调用和回收。

c.多线程支持,为每一个请求创建一个servlet线程进行服务。

d.配置安全,使用xml等配置文件配置其安全性,而不需要手工编码。

e.编码转换。

3.常见网络容器及对比

Apache

简单,只支持静态网页

Nginx

高性能反向web代理,自身不具备动态解析能力,一般做静态代理

Tomcat

适用于JSP/servlet的常见web容器

posted @ 2021-10-25 23:22  Cheung-10  阅读(15)  评论(0)    收藏  举报