1.Tomcat对request的处理过程;
- 浏览器发送请求到服务器后 tomcat中的
acceptor线程会通过socket接收该请求 - 服务器接收到请求后 acceptor会调用
work方法,后者会调用Http11Protocol去解析http - 解析HTTP后得到的数据(请求头 请求体)会被服务器封装到request对象中 即产出
request对象 - 之后再又程序员编写的逻辑代码(
service doget dopost方法等)进行处理 HTTP响应完后该request对象也会被销毁 request对象作用于整个请求链
2.Tomcat处理一个HTTP请求的过程;
- 使用
acceptor线程通过里面的socket去不断接收HTTP请求 - 接收请求后将其请求头请求体解析封装
- 处理完封装好的信息 返回相关结果给原请求 并结束本次HTTP请求
3.Tomcat创建 session 的流程;
-
应用程序拿到的
HttpServletRequest是org.apache.catalina.connector.RequestFacade(除非某些 Filter 进行了特殊处理),它是org.apache.catalina.connector.Request的门面模式 -
首先,会判断
Request对象中是否存在Session,如果存在并且未失效则直接返回,因为在 tomcat 中Request对象是被重复利用的,只会替换部分组件,所以会进行这步判断。 -
此时,如果不存在
Session,则尝试根据requestedSessionId查找Session,而该requestedSessionId会在 HTTP Connector 中进行赋值(如果存在的话) -
如果存在
Session的话则直接返回,如果不存在的话,则创建新的Session,并且把sessionId添加到Cookie中,后续的请求便会携带该Cookie,这样便可以根据Cookie中的sessionId找到原来创建的Session了
找到原来创建的 Session 了
[外链图片转存失败(img-BkrYnYbO-1569246757848)(C:\Users\洋\Desktop\contain.png)]
本文详细介绍了Tomcat处理HTTP请求的步骤,包括从浏览器发起请求到Tomcat接收并封装成request对象,再到程序员逻辑处理及响应。同时,文章还探讨了Tomcat创建session的流程,涉及session的查找、复用以及如何通过cookie在后续请求中保持session状态。
6541

被折叠的 条评论
为什么被折叠?



