啟動流程
啟動的時候會初始化【HttpServletBean init()】 ->【FrameworkServlet
initServletBean()】->【initWebApplicationContext() 并且找到initHandlerMappings等】;
請求
請求的時候會到DispatcherServlet的doDispatch()方法。然后通過getHandlers()找到對應的RequestMappingHandler。然后摘到HandlerMethod();返回HandlerExecutionChain。然后找到HandlerAdapter。然后執(zhí)行HandlerAdapter.invoke()即可。

image.png
- 物理層:
物理層負責最后將信息編碼成電流脈沖或其它信號用于網(wǎng)上傳輸;
eg:RJ45等將數(shù)據(jù)轉化成0和1; - 數(shù)據(jù)鏈路層:
數(shù)據(jù)鏈路層通過物理網(wǎng)絡鏈路??供數(shù)據(jù)傳輸。不同的數(shù)據(jù)鏈路層定義了不同的網(wǎng)絡和協(xié) 議特征,其中包括物理編址、網(wǎng)絡拓撲結構、錯誤校驗、數(shù)據(jù)幀序列以及流控;
可以簡單的理解為:規(guī)定了0和1的分包形式,確定了網(wǎng)絡數(shù)據(jù)包的形式; - 網(wǎng)絡層
網(wǎng)絡層負責在源和終點之間建立連接;
可以理解為,此處需要確定計算機的位置,怎么確定?IPv4,IPv6! - 傳輸層
傳輸層向高層??提供可靠的端到端的網(wǎng)絡數(shù)據(jù)流服務。
可以理解為:每一個應用程序都會在網(wǎng)卡注冊一個端口號,該層就是端口與端口的通信!常用的(TCP/IP)協(xié)議; - 會話層
會話層建立、管理和終止表示層與實體之間的通信會話;
建立一個連接(自動的手機信息、自動的網(wǎng)絡尋址); - 表示層:
表示層??供多種功能用于應用層數(shù)據(jù)編碼和轉化,以確保以一個系統(tǒng)應用層發(fā)送的信息 可以被另一個系統(tǒng)應用層識別;
可以理解為:解決不同系統(tǒng)之間的通信,eg:Linux下的QQ和Windows下的QQ可以通信; - 應用層:
OSI 的應用層協(xié)議包括文件的傳輸、訪問及管理協(xié)議(FTAM) ,以及文件虛擬終端協(xié)議(VIP)和公用管理系統(tǒng)信息(CMIP)等;
規(guī)定數(shù)據(jù)的傳輸協(xié)議;
請求從瀏覽器到后端
1;輸入www.pimow.com。瀏覽器會查看瀏覽器自身的dns緩存,如果沒有就找系統(tǒng)的dns緩存,沒有就根據(jù)系統(tǒng)配置的dns地址去解析獲得ip。
2:瀏覽器根據(jù)請求組裝報文,然后建立tcp連接發(fā)送報文。