HTTP協(xié)議(超文本傳輸協(xié)議)及相關(guān)協(xié)議

HTTP七層協(xié)議:

從網(wǎng)絡(luò)分層模型OSI來講,由上至下為:
應(yīng)用層 -> 表示層 -> 會話層 -> 傳輸層 -> 網(wǎng)絡(luò)層 -> 數(shù)據(jù)鏈路層 -> 物理層
順序參考 https://blog.csdn.net/u011619283/article/details/52679504
功能參考 https://blog.csdn.net/u011774517/article/details/67631439

TCP/IP五層模型的協(xié)議分為:

應(yīng)用層奶赔、傳輸層栓撞、網(wǎng)絡(luò)層冲甘、數(shù)據(jù)鏈路層和物理層
參考: https://blog.csdn.net/a5582ddff/article/details/77731537

注意:

1湾蔓、 HTTP協(xié)議對應(yīng)于應(yīng)用層,TCP協(xié)議對應(yīng)于傳輸層壹甥,IP協(xié)議對應(yīng)于網(wǎng)絡(luò)層救巷,HTTP協(xié)議是基于TCP連接的,三者本質(zhì)上沒有可比性。 TCP/IP是傳輸層協(xié)議句柠,主要解決數(shù)據(jù)如何在網(wǎng)絡(luò)中傳輸浦译;而HTTP是應(yīng)用層協(xié)議,主要解決如何包裝數(shù)據(jù)溯职。Socket是應(yīng)用層與TCP/IP協(xié)議族通信的中間軟件抽象層精盅,是它的一組接口。
2谜酒、傳輸層主要有兩個協(xié)議叹俏,分別是 TCP 和 UDP。TCP 比 UDP 更可靠甚带。你可以把 TCP 協(xié)議想象成某個水管她肯,發(fā)送端這頭進(jìn)水佳头,接收端那頭就出水鹰贵。并且 TCP 協(xié)議能夠確保晴氨,先發(fā)送的數(shù)據(jù)先到達(dá)(與之相反,UDP 不保證這點(diǎn))

HTTP:

一碉输、 定義:

HTTP是一個客戶端和服務(wù)器端請求和應(yīng)答的標(biāo)準(zhǔn)(TCP)籽前。客戶端是終端用戶敷钾,服務(wù)器端是網(wǎng)站枝哄。通過使用Web瀏覽器、網(wǎng)絡(luò)爬蟲或者其它的工具阻荒,客戶端發(fā)起一個到服務(wù)器上指定端口(默認(rèn)端口的HTTP請求挠锥。(我們稱這個客戶端)叫用戶代理(user agent)。應(yīng)答的服務(wù)器上存儲著(一些)資源侨赡,比如HTML文件和圖像蓖租。(我們稱)這個應(yīng)答服務(wù)器為源服務(wù)器(origin server)。

二羊壹、過程:

通常蓖宦,由HTTP客戶端發(fā)起一個請求,建立一個到服務(wù)器指定端口(默認(rèn)是80端口)的TCP連接油猫。HTTP服務(wù)器則在那個端口監(jiān)聽客戶端發(fā)送過來的請求稠茂。一旦收到請求,服務(wù)器(向客戶端)發(fā)回一個狀態(tài)行情妖,比如"HTTP/1.1 200 OK"睬关,和(響應(yīng)的)消息,消息的消息體可能是請求的文件毡证、錯誤消息共螺、或者其它一些信息。

三情竹、HTTP狀態(tài)

1xx:信息響應(yīng)類藐不,表示接收到請求并且繼續(xù)處理
2xx:處理成功響應(yīng)類,表示動作被成功接收秦效、理解和接受
3xx:重定向響應(yīng)類雏蛮,為了完成指定的動作,必須接受進(jìn)一步處理
4xx:客戶端錯誤阱州,客戶請求包含語法錯誤或者是不能正確執(zhí)行
5xx:服務(wù)端錯誤挑秉,服務(wù)器不能正確執(zhí)行一個正確的請求

四、Http協(xié)議與TCP協(xié)議

TCP協(xié)議對應(yīng)于傳輸層苔货,而HTTP協(xié)議對應(yīng)于應(yīng)用層

1犀概、定義:

a. HTTP(超文本傳輸協(xié)議)
HTTP 是一個基于請求與響應(yīng)模式的立哑、無狀態(tài)的、應(yīng)用層的協(xié)議姻灶,愁醮拢基于TCP的連接方式,HTTP1.1版本中給出一種持續(xù)連接的機(jī)制产喉,絕大多數(shù)的Web開發(fā)捂掰,都是構(gòu)建在HTTP協(xié)議之上的Web應(yīng)用。
b. TCP (傳輸控制協(xié)議) 
TCP是主機(jī)對主機(jī)層的傳輸控制協(xié)議曾沈,提供可靠的連接服務(wù)这嚣,采用三次握手確認(rèn)建立一個連接。
位碼即tcp標(biāo)志位,有6種標(biāo)示: SYN(建立聯(lián)機(jī)) ACK(確認(rèn)) PSH(傳送) FIN(結(jié)束) RST(重置) URG(緊急) Sequence number(順序號碼) Acknowledge number(確認(rèn)號碼)

2塞俱、應(yīng)用:

Http協(xié)議是建立在TCP協(xié)議基礎(chǔ)之上的姐帚,當(dāng)瀏覽器需要從服務(wù)器獲取網(wǎng)頁數(shù)據(jù)的時候,會發(fā)出一次Http請求障涯。Http會通過TCP建立起一個到服務(wù)器的連接通道罐旗,當(dāng)本次請求需要的數(shù)據(jù)完畢后,Http會立即將TCP連接斷開像樊,這個過程是很短的尤莺。所以Http連接是一種短連接,是一種無狀態(tài)的連接生棍。所謂的無狀態(tài)颤霎,是指瀏覽器每次向服務(wù)器發(fā)起請求的時候,不是通過一個連接涂滴,而是每次都建立一個新的連接友酱。如果是一個連接的話,服務(wù)器進(jìn)程中就能保持住這個連接并且在內(nèi)存中記住一些信息狀態(tài)柔纵。而每次請求結(jié)束后缔杉,連接就關(guān)閉,相關(guān)的內(nèi)容就釋放了搁料,所以記不住任何狀態(tài)或详,成為無狀態(tài)連接。

3郭计、HTTP協(xié)議 ------ TCP三次握手和四次揮手
參考:https://blog.csdn.net/qq_33535433/article/details/76396341

4霸琴、Socket連接與HTTP連接的不同

a. 通常情況下Socket連接就是TCP連接昭伸,因此Socket連接一旦建立,通信雙方即可開始相互發(fā)送數(shù)據(jù)內(nèi)容庐杨,直到雙方連接斷開夹供。但在實際應(yīng)用中仁堪,客戶端到服務(wù)器之間的通信防火墻默認(rèn)會關(guān)閉長時間處于非活躍狀態(tài)的連接而導(dǎo)致 Socket 連接斷連,因此需要通過輪詢告訴網(wǎng)絡(luò)枝笨,該連接處于活躍狀態(tài)揭蜒。
b. 而HTTP連接使用的是“請求—響應(yīng)”的方式,不僅在請求時需要先建立連接屉更,而且需要客戶端向服務(wù)器發(fā)出請求后,服務(wù)器端才能回復(fù)數(shù)據(jù)欺冀。

五、WebSocket

1隐轩、定義:

WebSocket同HTTP一樣也是應(yīng)用層的協(xié)議渤早,但是它是一種雙向通信協(xié)議,是建立在TCP之上的鹊杖。

2、連接過程 ------- 握手過程

a>. 瀏覽器积瞒、服務(wù)器建立TCP連接,三次握手茫孔。這是通信的基礎(chǔ)被芳,傳輸控制層,若失敗后續(xù)都不執(zhí)行筐钟。
b>. TCP連接成功后,瀏覽器通過HTTP協(xié)議向服務(wù)器傳送WebSocket支持的版本號等信息李破。(開始前的HTTP握手)
c>. 服務(wù)器收到客戶端的握手請求后宠哄,同樣采用HTTP協(xié)議回饋數(shù)據(jù)毛嫉。
d>. 當(dāng)收到了連接成功的消息后妇菱,通過TCP通道進(jìn)行傳輸通信。

3闯团、WebSocket和Socket的區(qū)別

Socket其實并不是一個協(xié)議,而是為了方便使用TCP或UDP而抽象出來的一層彻舰,是位于應(yīng)用層和傳輸控制層之間的一組接口。
WebSocket則是一個典型的應(yīng)用層協(xié)議刃唤。

4白群、WebSocket與HTTP的關(guān)系

相同點(diǎn):
都是一樣基于TCP的,都是可靠性傳輸協(xié)議帜慢。
都是應(yīng)用層協(xié)議。
不同點(diǎn):
WebSocket是雙向通信協(xié)議侍咱,模擬Socket協(xié)議,可以雙向發(fā)送或接受信息楔脯。HTTP是單向的胯甩。
WebSocket是需要握手進(jìn)行建立連接的。

  • 二者的聯(lián)系
    WebSocket在建立握手時偎箫,數(shù)據(jù)是通過HTTP傳輸?shù)摹5墙⒅竺颊恚谡嬲齻鬏敃r候是不需要HTTP協(xié)議的。

5、具體應(yīng)用:
參考 https://www.cnblogs.com/luoxiaowei/p/6952104.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末速挑,一起剝皮案震驚了整個濱河市谤牡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌姥宝,老刑警劉巖翅萤,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異腊满,居然都是意外死亡套么,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門碳蛋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胚泌,“玉大人,你說我怎么就攤上這事疮蹦≈畛伲” “怎么了茸炒?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵愕乎,是天一觀的道長。 經(jīng)常有香客問我壁公,道長,這世上最難降的妖魔是什么紊册? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任比肄,我火速辦了婚禮芳绩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘撞反。我一直安慰自己妥色,他們只是感情好遏片,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布嘹害。 她就那樣靜靜地躺著,像睡著了一般吮便。 火紅的嫁衣襯著肌膚如雪笔呀。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天髓需,我揣著相機(jī)與錄音,去河邊找鬼微渠。 笑死,一個胖子當(dāng)著我的面吹牛粗卜,可吹牛的內(nèi)容都是我干的续扔。 我是一名探鬼主播纱昧,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼灼捂!你這毒婦竟也來了悉稠?” 一聲冷哼從身側(cè)響起的猛,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎舌厨,沒想到半個月后邓线,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體骇陈,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡器联,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年肴颊,在試婚紗的時候發(fā)現(xiàn)自己被綠了婿着。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片竟宋。...
    茶點(diǎn)故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蜗字,靈堂內(nèi)的尸體忽然破棺而出挪捕,到底是詐尸還是另有隱情担神,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布始花,位于F島的核電站,受9級特大地震影響孩锡,放射性物質(zhì)發(fā)生泄漏酷宵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一躬窜、第九天 我趴在偏房一處隱蔽的房頂上張望浇垦。 院中可真熱鬧,春花似錦荣挨、人聲如沸男韧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽此虑。三九已至,卻和暖如春口锭,著一層夾襖步出監(jiān)牢的瞬間朦前,已是汗流浹背介杆。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留韭寸,地道東北人春哨。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像恩伺,于是被迫代替她去往敵國和親赴背。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評論 2 355

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