http之tcp具體實(shí)現(xiàn)

? ? ? ?我這人比較懶,之前計(jì)劃每周至少一篇博客窒舟,但是自從寫(xiě)了幾篇之后再也沒(méi)減持下去嘲驾。最近有個(gè)小伙伴在http長(zhǎng)連接下面@我淌哟。因此呢,為了避免以后有人還問(wèn)辽故。所以這次我寫(xiě)一個(gè)http之tcp具體實(shí)現(xiàn)徒仓,幫助大家具體理解所謂的通信協(xié)議到底是什么。

? ? ? ?*******所謂的通信協(xié)議就是通信雙方約定的規(guī)則*******

? ? ? ? 比如對(duì)于tcp來(lái)說(shuō)誊垢,雙方約定建立鏈接時(shí)掉弛,相互hello對(duì)方一個(gè),發(fā)起這多hello一次喂走。結(jié)束時(shí)雙方bye一次殃饿,并相互確認(rèn)bye聽(tīng)到了。這就是tcp協(xié)議的一部分芋肠。當(dāng)然tcp協(xié)議很復(fù)雜乎芳,還有很多其他約定。

? ? ? ? http是以消息封裝在tcp消息體里的帖池。在傳輸層來(lái)看奈惑,http協(xié)議就是一個(gè)消息。網(wǎng)上具體背書(shū)式的介紹http協(xié)議我就不介紹了睡汹。請(qǐng)參看我寫(xiě)的http協(xié)議那篇里面有鏈接携取。下面直接討論http實(shí)現(xiàn)的主干邏輯。??


????????本文是使用ServerSocketChannel實(shí)現(xiàn)的帮孔。這個(gè)東西依賴于java。不知道其他語(yǔ)言怎么搞得不撑,沒(méi)考究過(guò)文兢。不過(guò)應(yīng)該萬(wàn)變不離其宗。

? ? ? ? 上圖為通過(guò)線程綁定端口焕檬,注冊(cè)通道姆坚,讓后通過(guò)線程啟動(dòng),來(lái)監(jiān)聽(tīng)web服務(wù)实愚。


上圖為接受tcp連接是個(gè)SocketChannel對(duì)象兼呵,讓后將SocketChannel放到線程池中處理兔辅。

讀通道里的tcp連接內(nèi)容。

????????這里的解析我就不貼代碼了击喂,因?yàn)樘L(zhǎng)维苔。解析就是讀tcp消息體,讓后http協(xié)議格式懂昂,解析http消息介时。http協(xié)議格式:

就按照這個(gè)一行一行解析tcp消息體

????????然后根據(jù)URL里面 鏈接地址,解析出對(duì)應(yīng)的處理方法進(jìn)行響應(yīng)處理凌彬。這就是http整個(gè)協(xié)議使用tcp實(shí)現(xiàn)的邏輯沸柔。因?yàn)槲沂鞘褂霉敬a。很多有業(yè)務(wù)邏輯代碼我沒(méi)有貼铲敛。所以看起來(lái)可能有點(diǎn)缺失褐澎。

? ? ? ? 建議大家可以去看jetty源碼,就可以理解了伐蒋。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末工三,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子咽弦,更是在濱河造成了極大的恐慌徒蟆,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件型型,死亡現(xiàn)場(chǎng)離奇詭異段审,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)闹蒜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)寺枉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人绷落,你說(shuō)我怎么就攤上這事姥闪。” “怎么了砌烁?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵筐喳,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我函喉,道長(zhǎng)避归,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任管呵,我火速辦了婚禮梳毙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘捐下。我一直安慰自己账锹,他們只是感情好萌业,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著奸柬,像睡著了一般生年。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鸟缕,一...
    開(kāi)封第一講書(shū)人閱讀 51,688評(píng)論 1 305
  • 那天晶框,我揣著相機(jī)與錄音,去河邊找鬼懂从。 笑死授段,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的番甩。 我是一名探鬼主播侵贵,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼缘薛!你這毒婦竟也來(lái)了窍育?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤宴胧,失蹤者是張志新(化名)和其女友劉穎漱抓,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體恕齐,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡乞娄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了显歧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仪或。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖士骤,靈堂內(nèi)的尸體忽然破棺而出范删,到底是詐尸還是另有隱情,我是刑警寧澤拷肌,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布到旦,位于F島的核電站,受9級(jí)特大地震影響巨缘,放射性物質(zhì)發(fā)生泄漏厢绝。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一带猴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧懈万,春花似錦拴清、人聲如沸靶病。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)娄周。三九已至,卻和暖如春沪停,著一層夾襖步出監(jiān)牢的瞬間煤辨,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工木张, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留众辨,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓舷礼,卻偏偏與公主長(zhǎng)得像鹃彻,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子妻献,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

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

  • Tcp 通過(guò)下列方式提供可靠性: tcp 是面向連接蛛株,可靠的字節(jié)流服務(wù)。 字節(jié)流服務(wù):兩個(gè)應(yīng)用程序通過(guò)tcp 連接...
    irckwk1閱讀 667評(píng)論 0 0
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類(lèi)型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,103評(píng)論 1 32
  • 本文出自 Eddy Wiki 育拨,轉(zhuǎn)載請(qǐng)注明出處:http://eddy.wiki/interview-java.h...
    eddy_wiki閱讀 2,128評(píng)論 0 14
  • 個(gè)人認(rèn)為谨履,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,054評(píng)論 0 8
  • 詩(shī)書(shū)禮樂(lè)易春秋熬丧,是為六藝笋粟。于君子有禮樂(lè)射御書(shū)數(shù)。禮者锹引,進(jìn)退矗钟;樂(lè)者內(nèi)和;射御武道也嫌变;書(shū)數(shù)吨艇,文道也。
    十年一井閱讀 208評(píng)論 0 0