HTTP 请求穿越的整个空间是分层的,包括:Web 容器、Web 应用、Spring 框架等,它们每层都是经过配置文件配置初始化的,这是一种松耦合的架构设计。如今咱们来梳理一下这些配置文件,HTTP 请求最早穿越的就是 Web 容器,它的表明产品 Tomcat 的配置文件是:server.xml
第二道穿越的是 Web 应用,它由 Listener\Filter\Servlet 等组件构成,主要配置文件是:web.xml
第三道穿越的是 Spring 框架,它自己又分红三层:表现层、领域层和数据源层,这些层也是由不一样的配置文件来配置维护的,表现层是经过 mvc-servlet.xml,领域层是经过 applicationContext.xml,数据源层是经过对象关系映射框架 ORM(Hibernate\iBatis\MyBatis等)的配置文件 sqlmap-mapping.xml、jdbc.properties 等来配置组装的,具体对应关系能够参照下图:
老兵哥我介绍这部份内容的缘由是帮助你们创建一个概念,这整套系统是由外而内一层包一层构建出来的,而每一个层内部是像搭积木同样由不一样类型的组件构建出来的,而层与层之间、每层内部都是经过配置文件衔接的。若是你想要更加系统深刻地掌握整个应用架构,咱们能够把上述这几份配置文件做为切入口或者线索。考虑到本文的主题是剖析 HTTP 请求的处理流程机制,咱们就再也不展开探讨了。web
在平常系统开发或维护当中,大部分问题都会跟 HTTP 请求处理相关。其中一部分是咱们对 HTTP 协议自己不熟悉,HTTP 协议是目前互联网中各个系统集成的最主要的应用层协议,该协议设计很是优良,咱们能够抽些时间深刻研究这套协议,固然若是有时间再附带 TCP/IP 协议,尤为是协议中控制服务质量的各类类型参数等。sql
除此以外,还有大部分是不熟悉 HTTP 请求处理的全流程,不知道在什么环节设置调试断点,以及配置文件不按要求填写等,这样就容易让本身陷入迷宫,耗费大量的时间精力找不到线索头绪。微信
本文主要价值是帮助你们梳理出端到端的全流程框架,也就是咱们常说的全局视角或者上帝视角。有了这个框架以后,咱们能够根据本身的须要按图索骥找相关节点的资料来研究学习,不至于陷入细节找不到方向。架构
固然,考虑到咱们每一个人的工做学习状况不一样,平时遇到的问题也不一样,本文内容没法覆盖全部人遇到的问题,欢迎你们留言提问,也欢迎关注个人微信公众号“IT老兵哥”交流互动,我会尽力尽快解答你们提出的问题,谢谢!mvc
本系列其余文章索引以下:app