摘要:前端主要關(guān)注于應(yīng)用層的協(xié)議,傳輸層的協(xié)議斷舍離一下,就主要總結(jié)這兩種協(xié)議了。是序號(hào),是確認(rèn)序號(hào)。根據(jù)服務(wù)端發(fā)來(lái)的返回一個(gè)包給服務(wù)端。服務(wù)端接收后進(jìn)入狀態(tài)。并在兩端維護(hù)了索引表,用于記錄出現(xiàn)過(guò)的,避免重復(fù)傳輸。
前端主要關(guān)注于應(yīng)用層的 HTTP 協(xié)議,傳輸層的 TCP 協(xié)議,斷舍離一下,就主要總結(jié)這兩種協(xié)議了。OSI 參考模型 與 TCP/IP 五層模型
我們主要關(guān)注于 TCP/IP 五層模型 的 應(yīng)用層 和 傳輸層 就足夠了。
應(yīng)用層:
作用:為應(yīng)用程序提供服務(wù)。
常見(jiàn)協(xié)議:HTTP、HTTPS、FTP、POP3、SMTP等。
傳輸層:
作用:實(shí)現(xiàn)應(yīng)用程序之間的數(shù)據(jù)傳輸。
協(xié)議:UDP、TCP
UDP 與 TCP UDPUDP 是面向無(wú)連接的協(xié)議,它只會(huì)把數(shù)據(jù)傳遞給接收端,但不會(huì)關(guān)注接收端是否已經(jīng)正確接收了數(shù)據(jù),所以有時(shí)候 UDP 會(huì)被認(rèn)為是不可靠的數(shù)據(jù)報(bào)協(xié)議。但這種特性反而適合多播,實(shí)時(shí)的視頻和音頻傳輸。
優(yōu)點(diǎn):
無(wú)需建立連接(減少了延遲)
實(shí)現(xiàn)簡(jiǎn)單(效率高)
頭部開(kāi)銷?。?8 字節(jié))
沒(méi)有擁塞控制(更好的控制發(fā)送時(shí)間和速率)
缺點(diǎn):
沒(méi)有建立連接(數(shù)據(jù)想發(fā)就發(fā),不可靠)
沒(méi)有擁塞控制(網(wǎng)絡(luò)條件不好時(shí)會(huì)導(dǎo)致丟包)
TCPTCP 是面向有連接的協(xié)議,在使用 TCP 協(xié)議 傳輸數(shù)據(jù)之前一定需要在發(fā)送方和接收方之間建立連接。建立連接三次握手,斷開(kāi)連接四次揮手~TCP 建立連接三次握手
第一次握手:
客戶端向服務(wù)端發(fā)送一個(gè) SYN(Seq=X) 包,客戶端進(jìn)入 SYN-SENT 狀態(tài),等待服務(wù)端的 ACK(Ack=X+1)回復(fù)。
ps: Seq 是序號(hào),Ack 是確認(rèn)序號(hào)。
第二次握手:
服務(wù)端根據(jù)接收到客戶端發(fā)來(lái)的 SYN(Seq=X) 包后返回一個(gè) ACK(Ack=X+1) 以及 SYN(Seq=Y) 包給客戶端,服務(wù)端進(jìn)入 SYN-RECIVED 狀態(tài),等待客戶端的 ACK(Ack=Y+1) 回復(fù)。
第三次握手:
客戶端接收到 ACK(X+1) 后,進(jìn)入 ESTABLISHED 狀態(tài)。根據(jù)服務(wù)端發(fā)來(lái)的 SYN(Y) 返回一個(gè) ACK(Y+1) 包給服務(wù)端。
服務(wù)端 接收 ACK(Y+1)后進(jìn)入 ESTABLISHED 狀態(tài)。此時(shí)連接建立成功。
TCP 關(guān)閉連接四次揮手這個(gè)過(guò)程可以用以下三句形象表示:
(客戶端):我想建立連接了,服務(wù)端你準(zhǔn)備好沒(méi)有呀?
(服務(wù)端):我準(zhǔn)備好了,你準(zhǔn)備好沒(méi)有?
(客戶端):我也準(zhǔn)備好了,開(kāi)始吧~
UDP 與 TCP 的區(qū)別這個(gè)過(guò)程可以用以下四句句形象表示:
(客戶端):我想關(guān)閉連接了。
(服務(wù)端):我知道了。
(服務(wù)端):我現(xiàn)在準(zhǔn)備關(guān)閉連接了,ok 嗎?
(客戶端):ok,你關(guān)閉吧。
UDP 協(xié)議是面向無(wú)連接的,它不能保證數(shù)據(jù)有序且不丟失的傳到對(duì)端,但是 UDP 比 TCP 更高效。
TCP 協(xié)議是面向有連接的,建立和斷開(kāi)連接都需要握手,在傳輸數(shù)據(jù)的過(guò)程中,通過(guò)滑動(dòng)窗口(流量控制)、擁塞處理(慢開(kāi)始,擁塞避免,快速重傳,快速恢復(fù)),能夠正確處理丟包問(wèn)題,保證接收方能夠收到數(shù)據(jù),與此同時(shí)還能夠有效利用網(wǎng)絡(luò)帶寬。
HTTPHTTP (HyperText Transfer Protocol) 超文本傳輸協(xié)議 是一個(gè)基于 TCP (傳輸層) 的應(yīng)用層協(xié)議,是客戶端與服務(wù)端之間請(qǐng)求和響應(yīng)的標(biāo)準(zhǔn)。主要特點(diǎn)
簡(jiǎn)單快速
客戶端向服務(wù)器請(qǐng)求服務(wù)時(shí),只需請(qǐng)求方法和請(qǐng)求路徑。
無(wú)狀態(tài)
客戶端再次向服務(wù)器請(qǐng)求服務(wù)時(shí),服務(wù)器并不知道客戶端之前是否請(qǐng)求過(guò)。
無(wú)連接
每次請(qǐng)求都會(huì)建立一個(gè) TCP 連接,請(qǐng)求處理完成后連接斷開(kāi)。HTTP 報(bào)文
請(qǐng)求行:
GET https://www.baidu.com/ HTTP/1.1 由請(qǐng)求方法、URL、協(xié)議版本組成
響應(yīng)行:
HTTP/1.1 200 OKHTTP 請(qǐng)求方法
協(xié)議版本、狀態(tài)碼、狀態(tài)信息組成
請(qǐng)求方法分為很多種,最常用的也就是 GET 和 POST 了。雖然請(qǐng)求方法很多,但更多的是為了傳達(dá)語(yǔ)義。更多的方法的語(yǔ)義描述可以閱讀 文檔 。
GET 和 POST 的區(qū)別GET
能緩存、請(qǐng)求長(zhǎng)度限制、 有歷史記錄GET 多用于 無(wú)副作用(不修改資源)、冪等(請(qǐng)求次數(shù)與資源無(wú)關(guān))的場(chǎng)景。
POST
POST 相對(duì) GET 安全一點(diǎn)點(diǎn),因?yàn)?GET 請(qǐng)求發(fā)送的數(shù)據(jù)包含在 URL 里。
兩者詳細(xì)對(duì)比:
![GET與POST](https://inknight.cn/pic/note/...
)
狀態(tài)碼表示了響應(yīng)的狀態(tài),可以讓我們知道這一次的請(qǐng)求是成功還是失敗,如果失敗,是什么原因?qū)е碌摹?/pre>2XX 成功
200 OK ,請(qǐng)求成功并返回?cái)?shù)據(jù)
204 No Content ,成功但無(wú)內(nèi)容
206 Partial Content ,范圍請(qǐng)求
3XX 重定向
301 永久重定向,表示資源已被分配了新的 URL
302 臨時(shí)重定向,資源臨時(shí)被分配新的 URL
304 資源未修改,可使用緩存
4XX 客戶端錯(cuò)誤
400 請(qǐng)求語(yǔ)法錯(cuò)誤
401 要求身份認(rèn)證
403 請(qǐng)求被服務(wù)器拒絕
404 資源不存在
5XX 服務(wù)器錯(cuò)誤
500 服務(wù)器錯(cuò)誤
503 服務(wù)器超負(fù)載或停機(jī)維護(hù)
HTTPS更安全的網(wǎng)絡(luò)傳輸協(xié)議需要安裝證書(shū)(公鑰)
經(jīng)過(guò) SSL/TLS 協(xié)議 加密,傳輸?shù)膬?nèi)容是經(jīng)過(guò)加密的
使用 443 端口
HTTP/2多路復(fù)用
在同一個(gè) TCP 連接上傳輸所有的請(qǐng)求數(shù)據(jù),避免 隊(duì)頭阻塞(瀏覽器限制同一個(gè)域名下的連接數(shù))問(wèn)題Header 壓縮
使用了 HPACK 壓縮格式對(duì)傳輸?shù)?header 進(jìn)行編碼,減少了 header 的大小。并在兩端維護(hù)了索引表,用于記錄出現(xiàn)過(guò)的 header ,避免 header 重復(fù)傳輸。二進(jìn)制傳輸
在之前的 HTTP 版本中,我們是通過(guò)文本的方式傳輸數(shù)據(jù)。在 HTTP/2 中引入了新的編碼機(jī)制,所有傳輸?shù)臄?shù)據(jù)都會(huì)被分割,并采用二進(jìn)制格式編碼。服務(wù)端推送
服務(wù)端可以在客戶端的某個(gè)請(qǐng)求后,主動(dòng)推送其他客戶端在之后會(huì)用到的資源。省去了客戶端重復(fù)請(qǐng)求的步驟,降低了延遲。參考資料:
https://juejin.im/post/5c64d15d6fb9a049d37f9c20#heading-49
https://mp.weixin.qq.com/s/GICbiyJpINrHZ41u_4zT-A?
http://www.alloyteam.com/2016/07/httphttp2-0spdyhttps-reading-this-is-enough/
https://juejin.im/book/5bdc715fe51d454e755f75ef/section/5bdc72b151882516f039fce3
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/109096.html
摘要:需要說(shuō)明是的,這里說(shuō)的專家不再關(guān)心細(xì)節(jié),不代表成為專家后學(xué)不會(huì)細(xì)節(jié),也不代表專家不了解細(xì)節(jié)。本文將從三個(gè)點(diǎn)去解釋,為什么專家看上去越來(lái)越原理技術(shù)細(xì)節(jié)。試想一個(gè)不能理解業(yè)務(wù)要做什么的人,即便懂得再多技術(shù)細(xì)節(jié),對(duì)業(yè)務(wù)也是沒(méi)有價(jià)值的。1. 引言 本周的精讀是有感而發(fā)。 筆者接觸前端已有八年,觀察了不少前端大牛的發(fā)展路徑,發(fā)現(xiàn)成功的人都具有相似的經(jīng)歷: 初期技術(shù)熱情極大 -> 大量標(biāo)志性技術(shù)項(xiàng)目 -...
摘要:不過(guò)幸運(yùn)的是所有面試的公司都給了,在這里總結(jié)下經(jīng)驗(yàn)吧。這里推薦下我當(dāng)時(shí)看的一篇的面經(jīng),木易楊老師寫(xiě)的大廠高級(jí)前端面試題匯總。 前言 本人畢業(yè)一年,最近陸續(xù)面試了頭條、瓜子、360、猿輔導(dǎo)、中信銀行、老虎等公司,由于最近比較寒冬而且招1-3年的并不多,再加上自己對(duì)公司規(guī)模和位置有一定要求,所以最后合適的也就這幾家了。不過(guò)幸運(yùn)的是所有面試的公司都給了offer,在這里總結(jié)下經(jīng)驗(yàn)吧。掘金:h...
摘要:互聯(lián)網(wǎng)的產(chǎn)品人員,可能整個(gè)職業(yè)生涯都要與技術(shù)人員打交道。還有開(kāi)房信息泄露那次,是由于被黑客攻擊。關(guān)于黑客攻擊的問(wèn)題,作為產(chǎn)品人員甚至普通的開(kāi)發(fā)人員,都是沒(méi)有辦法的事情,要有極其專業(yè)的安全團(tuán)隊(duì)才可能應(yīng)付。 我們常說(shuō),作為技術(shù)人員要有產(chǎn)品思維,從產(chǎn)品和運(yùn)營(yíng)的角度去思考技術(shù)方案。是的,我們也這樣做了。然而,從我多年的需求溝通及項(xiàng)目協(xié)調(diào)的經(jīng)驗(yàn)來(lái)看,產(chǎn)品人員其實(shí)也可以有一點(diǎn)技術(shù)思維。 所謂技術(shù)思...
摘要:第二十二期掘金團(tuán)隊(duì)請(qǐng)來(lái)了進(jìn)階解密作者劉望舒做了為期三天的活動(dòng)活動(dòng)已結(jié)束。我們?cè)诖司x了一些來(lái)自用戶的提問(wèn)及劉望舒的回答。提醒本期分布式微服務(wù)主題的正在進(jìn)行,歡迎前去提問(wèn),傳送門(mén)關(guān)于劉望舒進(jìn)階之光進(jìn)階解密的作者,安卓巴士等技術(shù)大會(huì)特邀講師。第二十二期 AMA 掘金團(tuán)隊(duì)請(qǐng)來(lái)了《Android進(jìn)階解密》作者-- 劉望舒做了為期三天的 Ask Me Anything (AMA) 活動(dòng)(活動(dòng)已結(jié)束)。...
摘要:也就正式開(kāi)始了我的前端之路。在這期間,我還購(gòu)買并配置了自己的云服務(wù)器,自己的博客系統(tǒng),自己的還學(xué)會(huì)了的基本操作。不必說(shuō)的是高級(jí)程序設(shè)計(jì)豆瓣鏈接這本書(shū),也就是大家常說(shuō)的高程,基本上每個(gè)合格的前端程序員都要熟讀很多很多次,每次讀都會(huì)有新發(fā)現(xiàn)。 原創(chuàng) 西安前端交流會(huì): 卡農(nóng) [email protected] 本文章同步發(fā)表在wdShare西安前端交流會(huì)網(wǎng)站、我的個(gè)人博客以及segmentF...
閱讀 1203·2021-11-15 18:00
閱讀 1798·2021-10-08 10:15
閱讀 763·2021-09-04 16:48
閱讀 2388·2021-09-04 16:48
閱讀 1321·2019-08-29 18:40
閱讀 976·2019-08-29 13:08
閱讀 2996·2019-08-26 14:06
閱讀 1119·2019-08-26 13:35