Spring MVC系列(7)-DispatcherServlet处理请求流程源码分析
前言
在之前我们了解到了DispatcherServlet是如何初始化的,接下来我们了解下他是如何处理请求的呢?
Tomcat处理请求流程
首先,我们了解下Tomcat启动后是如何处理HTTP请求的?
网络通信三要素
- IP地址:计算机在网络上的唯一标示,通过ip找到通信所在的机器
- 端口:端口是一台机器上不同程序的标示
- 传输协议:双方都遵守的传输数据的格式
HTTP工作原理
HTTP协议是浏览器与服务器之间的数据传送协议。作为应用层协议,HTTP是基于TCP/IP协议来传递数据的(HTML文件、图片、查询结果等),HTTP协议不涉及数据包(Packet )传输,主要规定了客户端和服务器之间的通信格式。

从图上你可以看到,这个过程是:
1、 用户通过浏览器进行了一个操作,比如输入网址并回车,或者是点击链接,接着浏览器获取了这个事件;
2、 浏览器向服务端发出TCP连接请求;
3、 服务程序接受浏览器的连接请求,并经过TCP三次握手建立连接;
4、 浏览器将请求数据打包成一个HTTP协议格式的数据包;
5、 浏览器将该数据包接入网络,数据包经过网络传输,最终达到端服务程序;
6、 服务端程序拿到这个数据包后,同样以HTTP协议格式解包,获取到客户端的意图;
7、 得知客户端意图后进行处理,比如提供静态文件或者调用服务端程序获得动态结果;
8、 服务器将响应结果(可能是HTML或者图片等)按照HTTP协议格式打包;
9、 服务器将响应数据包推入网络,数据包经过网络传输最终达到到浏览器;
10、 浏览器拿到数据包后,以HTTP协议的格式解包,然后解析数据,假设这里的数据是HTML;