準(zhǔn)備下我們所需要的工具。首先要說的就是Connector,其作為Service的子容器,承擔(dān)著http請求的核心功能。那我們先來準(zhǔn)備下一啊吧。
我們知道一次網(wǎng)絡(luò)請求過來之后,從網(wǎng)絡(luò)的角度來看,是經(jīng)過物理層→鏈路層→網(wǎng)絡(luò)層->傳輸層->應(yīng)用層,如下圖所示。
我們所熟知的的Socket處于TCP(傳輸層),操作系統(tǒng)為我們提供來一套API來操作Socket,而tomcat其任務(wù)就是針對傳輸層過來的Socket進行包裝,并實現(xiàn)應(yīng)用層的協(xié)議,最常見的應(yīng)用層協(xié)議應(yīng)該算是http協(xié)議了。接下來就來具體看看tomcat是如何實現(xiàn)http協(xié)議(實際上tomcat還實現(xiàn)了ajp協(xié)議以及處理請求的。
我們這里以最常見的BIO(阻塞試IO)的方式來分析。我們先來看看tomcat是怎么處理TCP連接的。在org.apche.tomcat.util.net包主要是用于處理網(wǎng)絡(luò)請求的,即對