2.TOMCAT Connector分析

由上章內(nèi)容我們大致可以知道一個請求發(fā)送到Tomcat之后碎浇,首先經(jīng)過Service然后會交給我們的Connector,Connector用于接收請求并將接收的請求封裝為Request和Response來具體處理奴璃,Request和Response封裝完之后再交由Container進行處理苟穆,Container處理完請求之后再返回給Connector唱星,最后在由Connector通過Socket將處理的結(jié)果返回給客戶端跟磨,這樣整個請求的就處理完了!

Connector最底層使用的是Socket來進行連接的哎榴,Request和Response是按照HTTP協(xié)議來封裝的仑濒,所以Connector同時需要實現(xiàn)TCP/IP協(xié)議和HTTP協(xié)議偷遗!

Tomcat既然處理請求,那么肯定需要先接收到這個請求喉酌,接收請求這個東西我們首先就需要看一下Connector泵喘!

四、Connector架構(gòu)分析

Connector用于接受請求并將請求封裝成Request和Response相速,然后交給Container進行處理鲜锚,Container處理完之后在交給Connector返回給客戶端。

因此旺隙,我們可以把Connector分為四個方面進行理解:

image.png

首先看一下Connector的結(jié)構(gòu)圖骏令,如下所示:

image.png

Connector就是使用ProtocolHandler來處理請求的榔袋,不同的ProtocolHandler代表不同的連接類型,比如:Http11Protocol使用的是普通Socket來連接的妥粟,Http11NioProtocol使用的是NioSocket來連接的聪黎。

其中ProtocolHandler由包含了三個部件:Endpoint备恤、Processor锦秒、Adapter。

(1)Endpoint用來處理底層Socket的網(wǎng)絡(luò)連接惭笑,Processor用于將Endpoint接收到的Socket封裝成Request生真,Adapter用于將Request交給Container進行具體的處理。

(2)Endpoint由于是處理底層的Socket網(wǎng)絡(luò)連接川蒙,因此Endpoint是用來實現(xiàn)TCP/IP協(xié)議的长已,而Processor用來實現(xiàn)HTTP協(xié)議的,Adapter將請求適配到Servlet容器進行具體的處理康聂。

(3)Endpoint的抽象實現(xiàn)AbstractEndpoint里面定義的Acceptor和AsyncTimeout兩個內(nèi)部類和一個Handler接口胞四。Acceptor用于監(jiān)聽請求,AsyncTimeout用于檢查異步Request的超時氓侧,Handler用于處理接收到的Socket游昼,在內(nèi)部調(diào)用Processor進行處理。

至此载庭,我們應(yīng)該很輕松的回答(1)(2)(3)的問題了廊佩,但是(4)還是不知道,那么我們就來看一下Container是如何進行處理的以及處理完之后是如何將處理完的結(jié)果返回給Connector的顽铸?

請看下一章料皇。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末星压,一起剝皮案震驚了整個濱河市娜膘,隨后出現(xiàn)的幾起案子优质,更是在濱河造成了極大的恐慌,老刑警劉巖演怎,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件爷耀,死亡現(xiàn)場離奇詭異淑际,居然都是意外死亡扇住,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門锄贼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來女阀,“玉大人浸策,你說我怎么就攤上這事∮购梗” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長枉昏。 經(jīng)常有香客問我,道長句旱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任稚配,我火速辦了婚禮港华,結(jié)果婚禮上立宜,老公的妹妹穿的比我還像新娘。我一直安慰自己橙数,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著钟哥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吁恍。 梳的紋絲不亂的頭發(fā)上播演,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天写烤,我揣著相機與錄音,去河邊找鬼洲炊。 笑死,一個胖子當(dāng)著我的面吹牛蓝厌,可吹牛的內(nèi)容都是我干的古徒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼寺惫,長吁一口氣:“原來是場噩夢啊……” “哼蹦疑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起歉摧,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤叁温,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后冲九,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體跟束,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡冀宴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了氧腰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刨肃。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡真友,死狀恐怖紧帕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情是嗜,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站丽柿,受9級特大地震影響魂挂,放射性物質(zhì)發(fā)生泄漏馁筐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一敏沉、第九天 我趴在偏房一處隱蔽的房頂上張望果正。 院中可真熱鬧,春花似錦盟迟、人聲如沸舱卡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽轮锥。三九已至,卻和暖如春要尔,著一層夾襖步出監(jiān)牢的瞬間舍杜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工赵辕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留既绩,地道東北人。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓饲握,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蚕键。 傳聞我的和親對象是個殘疾皇子救欧,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容