标签:space 字节流 解析 hand 服务 协议 info 并且 pip
什么是tomcat?
tomcat是sun公司开发的一种轻量级的web服务器,适用于低并发的企业。也可用来开发web应用的调试。
一个请求是如何被tomcat服务器处理的,并且如何返回响应?
如图:
1—一个server实例就相当与一个JVM,一个server可以包括多个service。
—server提供了service的运行环境,即server控制着service的生命周期。
2—一个service提供一个服务,管理不同的web应用。一个service包括多个多个connector和一个container,以及一些辅助的组件。
3—一个connector负责处理一种协议的请求。
4—container负责具体的处理Request。
connector的结构
ProtocolHandler负责具体处理request。
—acceptor负责监听请求。
—Handler负责将获得的socket,内部调用processor处理。
—processor负责将获得socket字节流转为request,交给Adapter处理。
—Adapter负责将request和response传给container。
Connector 的功能主要是以下一个。
—监听网络端口。
—接收网络请求。
—读取请求中的网络字节流。
—根据http/Ajp协议解析网络的字节流,生成统一的tomcat request对象。
—将tomcat request对象转为标准的ServletRequest对象。
—调用Servlet容器获取ServletResponse对象。
—将ServletResponse对象转为tomcat response对象。
—将tomcat response对象转成网络字节流。
—将响应字节流回写给浏览器。
container结构
container处理请求采用的是pipeline-valve管道来处理的。(valve即阀门的意思)
pipeline-valve是责任链模式(指在处理一个请求的过程中有很多处理者依次对其处理),pipeline-valve使用的责任链模式和普通的责任链模式有些不同(1.每个pipeline都有自己的valve在管道的最后执行,称为basevalve,且basevalve不可以删除。2.在上层管道的basevalve会调用下层的管道。
标签:space 字节流 解析 hand 服务 协议 info 并且 pip
原文地址:https://www.cnblogs.com/laoyu-love-life/p/14687834.html