網(wǎng)絡(luò)大綱

網(wǎng)絡(luò)模型五層協(xié)議硼啤,在開發(fā)過程中涉及到的協(xié)議和概念進(jìn)行概括總結(jié)

http

http協(xié)議隨著網(wǎng)絡(luò)的發(fā)展质况,傳輸速度的加快和應(yīng)用的豐富聪富,傳輸?shù)臄?shù)據(jù)量也越來越大莺丑,版本也隨之升級更新。
1.0----> 1.1---->2.0
升級的目的:更快的傳輸數(shù)據(jù)墩蔓,更快的渲染速度梢莽。
關(guān)鍵詞:
http1.1 : 鏈接復(fù)用Keep-alive、隊(duì)頭阻塞钢拧、gzip壓縮蟹漓?
http2.0: 二進(jìn)制分幀, io多路復(fù)用,流優(yōu)先級源内,header優(yōu)化(HPack算法)葡粒,Server-push

請求方式

常用請求方式有g(shù)et份殿、post。
get請求為向服務(wù)器請求資源嗽交,通常請求到的資源是不可變的卿嘲,瀏覽器會進(jìn)行緩存操作。
而post請求如請求體中為表單數(shù)據(jù)夫壁,通常服務(wù)器會利用提交的數(shù)據(jù)的數(shù)據(jù)執(zhí)行相應(yīng)的邏輯拾枣,不可緩存。

http格式

http request中包含:請求行盒让,請求header梅肤,空行,請求內(nèi)容
http response中包含:響應(yīng)碼邑茄,header姨蝴,空行,響應(yīng)內(nèi)容肺缕。
考慮一個問題:https中抓包獲取到的請求行中有路徑嗎左医?

http加速

提到加速必須要先考慮http請求的各個階段
DNS獲取ip地址 ----> 發(fā)起網(wǎng)絡(luò)請求(攜帶請求數(shù)據(jù)) ----> 網(wǎng)絡(luò)傳輸----> 服務(wù)端進(jìn)行響應(yīng)

域名解析:dns緩存(瀏覽器緩存,本地緩存/etc/host)同木。
Dns解析存在著被劫持的問題:Dns在請求方和dns服務(wù)器之間是udp協(xié)議 53端口浮梢,Master(主要名稱服務(wù)器);Slave(備份服務(wù)器)彤路,Slave通過區(qū)域傳送從 Master 服務(wù)器獲得區(qū)域數(shù)據(jù)的副本秕硝。
那么客戶端請求的第一個dns服務(wù)器從哪里來呢?
路由器通過DHCP分配斩萌,也可以用戶自己配置dns服務(wù)器如:8:8:8:8
DHCP:動態(tài)主機(jī)配置協(xié)議缝裤。用于給網(wǎng)絡(luò)內(nèi)的主機(jī)自動分配IP地址。一般通過路由器或DHCP服務(wù)器颊郎,把將要為用戶分配的網(wǎng)關(guān)、DNS服務(wù)器及域名等參數(shù)保存至配置文件中霎苗,當(dāng)DHCP客戶端連接到DHCP服務(wù)器請求IP地址時姆吭,就會按配置文件指定的地址池分配IP地址、網(wǎng)關(guān)唁盏、DNS服務(wù)器内狸。

HttpDns優(yōu)化Dns被劫持的問題。

DNS部分優(yōu)化

域名----CNAME(如云服務(wù)器關(guān)聯(lián))

DNS相關(guān)概念:

A記錄(A記錄是把一個域名解析到一個IP地址厘擂,又稱IP指向)
CNAME 簡單理解為域名到域名的映射昆淡。 如CDN服務(wù)中,如果CND服務(wù)商提供給你ip地址刽严,如果ip變更昂灵,會直接影響到用戶,提供給用戶的實(shí)際為域名,做了一層隔離眨补,并且會根據(jù)用戶所在位置選擇并返回最優(yōu)節(jié)點(diǎn) IP管削,加快訪問速度,這也是cnd最重要的功能撑螺。
缺點(diǎn):第一次DNS解析域名的時候會多解析一次含思。

httpdns

域名服務(wù)器中有高速緩存,選用一個優(yōu)質(zhì)的dns服務(wù)器甘晤,可能會觸發(fā)緩存含潘,加快ip返回速度。
httpdns自身考慮配置ip直連列表线婚,同樣的ip地址在不同的網(wǎng)絡(luò)環(huán)境下訪問速度可能不一致调鬓,因此可以在初始化時對ip列表進(jìn)行速度測試,為當(dāng)前的ip設(shè)置生效時間酌伊。(并行 or 串行 or 階梯型)
當(dāng)httpdns失敗時要使用降級方案腾窝。

域名合并

如一個公司不同部門的資源三級域名不一致,那么可以進(jìn)行合并居砖,并做路徑映射然后通過后端統(tǒng)一接口再做拆分轉(zhuǎn)發(fā)到對應(yīng)的服務(wù)器虹脯。
參見美團(tuán)域名合并方案

傳輸數(shù)據(jù)優(yōu)化

利用http協(xié)議中現(xiàn)有的機(jī)制減少請求數(shù)據(jù)量

  1. 設(shè)置gzip壓縮
  2. http2.0 中頭部壓縮
  3. 具體業(yè)務(wù)場景下如大量音頻或者視頻數(shù)據(jù)考慮具體的壓縮算法。 post請求 語音識別:multipart奏候,chunked(減少了請求次數(shù))
  4. protobuf 替換json循集,利用變長編碼減少數(shù)據(jù)量。

如: boundary自然要避免和傳輸數(shù)據(jù)一致導(dǎo)致數(shù)據(jù)解析異常
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary11223344

Content-Length: 514
持續(xù)上傳數(shù)據(jù)設(shè)置multipart和大數(shù)據(jù)返回chunk

transfer-encoding:chunked

其他

電商app中網(wǎng)絡(luò)請求緩存蔗草,如緩存get請求數(shù)據(jù)咒彤,并且對應(yīng)數(shù)據(jù)本地持久化,再次打開頁面時加快訪問速度咒精。

tcp

關(guān)鍵詞:三次握手镶柱,擁塞控制(cwd, swd)模叙,數(shù)據(jù)丟包原因

websocket

websocket和socket區(qū)別歇拆,和使用tcp建立的長鏈接區(qū)別
websocket和http區(qū)別 和Server push機(jī)制的區(qū)別

問題

基于tcp實(shí)現(xiàn)的http協(xié)議,必然會受限于tcp協(xié)議隊(duì)頭阻塞問題范咨,因此Quick協(xié)議基于udp實(shí)現(xiàn)故觅,對此進(jìn)行優(yōu)化。
如在一次http請求訪問異常時渠啊,重試發(fā)起一次http請求输吏,并以階梯方式間隔短暫時間發(fā)起quic請求,哪個請求先返回則使用哪個請求替蛉。

參考

facebook奇特的頁面加載技術(shù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末贯溅,一起剝皮案震驚了整個濱河市拄氯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌盗迟,老刑警劉巖坤邪,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異罚缕,居然都是意外死亡艇纺,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門邮弹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來黔衡,“玉大人,你說我怎么就攤上這事腌乡∶私伲” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵与纽,是天一觀的道長侣签。 經(jīng)常有香客問我,道長急迂,這世上最難降的妖魔是什么影所? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮僚碎,結(jié)果婚禮上猴娩,老公的妹妹穿的比我還像新娘。我一直安慰自己勺阐,他們只是感情好卷中,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著渊抽,像睡著了一般蟆豫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上腰吟,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天无埃,我揣著相機(jī)與錄音,去河邊找鬼毛雇。 笑死,一個胖子當(dāng)著我的面吹牛侦镇,可吹牛的內(nèi)容都是我干的灵疮。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼壳繁,長吁一口氣:“原來是場噩夢啊……” “哼震捣!你這毒婦竟也來了荔棉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蒿赢,失蹤者是張志新(化名)和其女友劉穎润樱,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體羡棵,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡壹若,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了皂冰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片店展。...
    茶點(diǎn)故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖秃流,靈堂內(nèi)的尸體忽然破棺而出赂蕴,到底是詐尸還是另有隱情,我是刑警寧澤舶胀,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布概说,位于F島的核電站,受9級特大地震影響嚣伐,放射性物質(zhì)發(fā)生泄漏糖赔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一纤控、第九天 我趴在偏房一處隱蔽的房頂上張望挂捻。 院中可真熱鬧,春花似錦船万、人聲如沸刻撒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽声怔。三九已至,卻和暖如春舱呻,著一層夾襖步出監(jiān)牢的瞬間醋火,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工箱吕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留芥驳,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓茬高,卻偏偏與公主長得像兆旬,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子怎栽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評論 2 355

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

  • DNS解析本質(zhì)上是localDNS的解析丽猬,說白了宿饱,你給它一個域名,它返回給你一個IPlist DNS(Domain...
    GitArtOS閱讀 4,270評論 6 9
  • 非常好的文章脚祟,怕博主刪除谬以,再也找不到這么好的文章了,所以復(fù)制了一份由桌,博主是2016年寫为黎,但是是到現(xiàn)在為止看到的,思...
    吭聲_cfdc閱讀 1,661評論 0 4
  • 推薦閱讀:備戰(zhàn)2020——iOS全新面試題總結(jié) 一沥寥、DNS 因特網(wǎng)上的主機(jī)碍舍,可以使用多種方式標(biāo)識,比如主機(jī)名或IP...
    lp_lp閱讀 787評論 0 1
  • 需求背景: 當(dāng)一個單一的業(yè)務(wù)對外流量很大時邑雅,超過700Mbps后片橡,負(fù)載均衡器有可能會成為瓶頸,例如LVS和低...
    廣東羊駝閱讀 1,139評論 0 3
  • 每一個人的成功都不可復(fù)制淮野,我們能做的就是保持一顆平常心捧书,忠于自己的寫作節(jié)奏,踏踏實(shí)實(shí)的堅持寫下去骤星,我相信人生沒有白...
    雪凌悅讀閱讀 269評論 0 1