摘要:作者楊志曉一相關(guān)協(xié)議類概念和協(xié)議屬于傳輸層協(xié)議。該協(xié)議是一種更加快速的內(nèi)容傳輸協(xié)議。在傳輸層,目前主要使用,但由于本身的問題一個充滿補(bǔ)丁的丑陋的協(xié)議,成為了限制應(yīng)用性能的一個瓶頸。同理,服務(wù)端也是將數(shù)據(jù)拆分為不同幀返回。
作者:楊志曉
一、相關(guān)協(xié)議類概念:a.TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)協(xié)議屬于傳輸層協(xié)議。 其中TCP提供IP環(huán)境下的數(shù)據(jù)可靠傳輸,它提供的服務(wù)包括數(shù)據(jù)流傳送、可靠性、有效流控、全雙工操作和多路復(fù)用。 通過面向連接、端到端和可靠的數(shù)據(jù)包發(fā)送。
b.SPDY協(xié)議是Google提出的基于傳輸控制協(xié)議(TCP)的應(yīng)用層協(xié)議,通過壓縮、多路復(fù)用和優(yōu)先級來縮短加載時間。 該協(xié)議是一種更加快速的內(nèi)容傳輸協(xié)議。
c.QUIC(Quick UDP Internet Connections)基于UDP的傳輸層協(xié)議,提供像TCP一樣的可靠性。在提高web應(yīng)用性能上,可以選擇在應(yīng)用層使用HTTP2.0實(shí)現(xiàn)多路傳輸,在物理層使用CDN解決網(wǎng)絡(luò)擁塞和最后一公里問題。在傳輸層,目前主要使用TCP,但由于TCP本身的問題(一個充滿補(bǔ)丁的丑陋的協(xié)議),成為了限制web應(yīng)用性能的一個瓶頸。
a.mac網(wǎng)卡(多路訪問控制協(xié)議(multiple access control protocol)
1_1.png
b.Ip報(bào)文解析
1_2.png
ip報(bào)頭長度計(jì)算:
1_3.png
5*4 =20
c.tcp報(bào)文解析
1_4.png
a.通過一個普通html分析:
1_5.png
1_6.png
b.如上圖分析:
綠色為:Waiting (TTFB):TTFB (Time To First Byte),是最初的網(wǎng)絡(luò)請求被發(fā)起到從服務(wù)器接收到第一個字節(jié)這段時間,它包含了 TCP連接時間,發(fā)送HTTP請求時間和獲得響應(yīng)消息第一個字節(jié)的時間。
藍(lán)色為:Content Download
c.等待時間影響因素:從發(fā)送請求到收到響應(yīng)之間的空隙,會受到線路、服務(wù)器距離等因素的影響。
d.瀏覽器同域名發(fā)出6個請求,建立幾個tcp?1 or 6?
帶著上面的疑問我們對demo進(jìn)行抓包
抓包分析:
1_7.png
分析后發(fā)現(xiàn):三張圖片+html總共四個請求
index.html+section4new.png端口是55653
section01.png+section2.jpg端口是55654
為什么是這樣呢:
查看tcp抓包:
1_8.png
通過抓包看到 :
第一個http請求 index.html請求端口是:55653
第二個http請求 section4new.png請求端口是:55653
第三個http請求 section01.png請求端口是:55654
第四個http請求section2.jpg請求端口是:55654
同時也看到tcp開始建立時同時發(fā)出了兩條請求
1_9.png
默認(rèn)谷歌瀏覽器發(fā)起了兩條tcp請求(瀏覽器不同,可能是請求個數(shù)少)
同樣抓包中看到了tcp的三次握手
1_10.png
a.瀏覽器加載如下:
1_11.png
b.討論點(diǎn):http1.1請求會是按照如下圖1還是圖2?
1_12.png
討論結(jié)論:
http1.1 without pipelining: 通過tcp連接上一個請求相應(yīng)完后,下一個請求才能發(fā)出
http1.1 with pipelining: 通過tcp連接,上一個請求發(fā)出,下一個請求不需要等待,但是返回是同一順序。
http2.0在TCP連接上傳輸?shù)氖菐蛻舳藭⒁獋鬏數(shù)臄?shù)據(jù)拆分為不同的幀,并標(biāo)記對應(yīng)的數(shù)據(jù)流ID,異步發(fā)出,服務(wù)端接收到幀集合根據(jù)數(shù)據(jù)流ID拼湊起來即為客戶端發(fā)送來的數(shù)據(jù)。同理,服務(wù)端也是將數(shù)據(jù)拆分為不同幀返回。
1_13.png
1_14
..]
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/40428.html
摘要:作者楊志曉的版本建立在協(xié)議之上。網(wǎng)絡(luò)上的大多數(shù)網(wǎng)站都是基于協(xié)議,而可以支持多線程的連接請求,通過這個操作可以減少載入網(wǎng)頁的時間。它可以防止重放攻擊,并確認(rèn)初始數(shù)據(jù)交換的完整性。 作者:楊志曉 http的版本: a.HTTP建立在TCP協(xié)議之上。 b.HTTP/0.9 于1991年發(fā)布。 c.HTTP/1.0 于1996年發(fā)布。 d.HTTP/1.1 于1999年發(fā)布。 e.HTTP/2...
摘要:緩存緩存,也叫網(wǎng)關(guān)緩存反向代理緩存。瀏覽器先向網(wǎng)關(guān)發(fā)起請求,網(wǎng)關(guān)服務(wù)器后面對應(yīng)著一臺或多臺負(fù)載均衡源服務(wù)器,會根據(jù)它們的負(fù)載請求,動態(tài)將請求轉(zhuǎn)發(fā)到合適的源服務(wù)器上。雖然這種架構(gòu)負(fù)載均衡源服務(wù)器之間的緩存沒法共享,但卻擁有更好的處擴(kuò)展性。 一、前言? 工作上遇到一個這樣的需求,一個H5頁面在APP端,如果勾選已讀狀態(tài),則下次打開該鏈接,會跳過此頁面。用到了HTML5 的本地存儲 API ...
摘要:一端用私鑰加密,另一端用公鑰解密,也確保了來源目前現(xiàn)在好像使用了數(shù)字簽名就萬無一失了,其實(shí)還有問題。如果公鑰被偽造了,后面的數(shù)字簽名其實(shí)就毫無意義了。具有校驗(yàn)機(jī)制,一旦被篡改,通信雙方會立刻發(fā)現(xiàn)。配備身份證書,防止身份被冒充。 一、前言 只有光頭才能變強(qiáng) HTTP博文回顧: PC端:HTTP就是這么簡單 PC端:HTTP面試題都在這里 微信公眾號端:HTTP就是這么簡單 微信公眾號端...
摘要:可以通過等方式按照協(xié)議通信。上述都需要發(fā)送結(jié)束包。函數(shù)所需的變量在進(jìn)入該函數(shù)之前認(rèn)為已經(jīng)初始化完成。和都有自己的,且互不干涉,后續(xù)發(fā)送的序列號以此為基準(zhǔn)。 運(yùn)營研發(fā)團(tuán)隊(duì) 施洪寶 一. FastCGI協(xié)議簡介 1.1 簡介 FastCGI(Fast Common Gateway Interface, 快速通用網(wǎng)關(guān)接口)是一種通信協(xié)議。可以通過Unix Domain Socket, Na...
閱讀 2410·2021-11-16 11:44
閱讀 848·2021-09-10 11:16
閱讀 2223·2019-08-30 15:54
閱讀 1039·2019-08-30 15:53
閱讀 1893·2019-08-30 13:00
閱讀 615·2019-08-29 17:07
閱讀 3509·2019-08-29 16:39
閱讀 3134·2019-08-29 13:30