四 前端總結 之服務端與 絡篇

2022-08-30 05:09:11 字數 2732 閱讀 2905

1.0 協議缺陷:

⽆法復⽤鏈結,完成即斷開,重新慢啟動和 tcp 3 次握⼿

head of line blocking : 線頭阻塞,導致請求之間互相影響

1.1 改進:

⻓連線(預設 keep-alive ),復⽤

host 字段指定對應的虛擬站點新增功能:

斷點續傳身份認證狀態管理

cache 緩

存cache-control expires

last-modified etag

2.0: 

多路復⽤

⼆進製分幀層: 應⽤層和傳輸層之間

⾸部壓縮服務端推送

https: 較為安全的⽹絡傳輸協議

證書(公鑰)

ssl 加密端

⼝ 443

三次握⼿

四次揮⼿

滑動窗⼝: 流量控制擁塞

處理慢開始擁塞避免

快速重傳

快速恢復

快取策略: 可分為 強快取

和協商快取

強快取cache-control/expires : 瀏覽器判斷快取是否過期,未過期時,直接使⽤強快取,

cache-control 的 max-age 優先順序⾼於 expires

當快取已經過期時,使⽤協商快取

唯⼀標識⽅案: etag ( response 攜帶) & if-none-match ( request 攜帶,上⼀次返回的 etag ): 伺服器判斷資源是否被修改

上⼀次返回的 last-modified )

如果⼀致,則直接返回 304 通知瀏覽器使⽤快取

如不⼀致,則服務端返回新的資源

last-modified 缺

點 :週期性修改,但內容未變時,會導致快取失效

最⼩粒度只到 s , s 以內的改動⽆法檢測到

etag 的優先順序⾼於 last-modified

1xx : 接受,繼續處理

200 : 成功,並返回資料

201 : 已建立

202 : 已接受

203 : 成為,但未授權

204 : 成功,⽆內容

205 : 成功,重置內容

206 : 成功,部分內容

301 : 永久移動,重定向

302 : 臨時移動,可使⽤原有uri

304 : 資源未修改,可使⽤快取

305 : 需**訪問

400 : 請求語法錯誤

401 : 要求身份認證

403 : 拒絕請求

404 : 資源不存在

500 : 伺服器錯誤

get : 快取、請求⻓度受限、會被歷史儲存記錄

⽆副作⽤(不修改資源),冪等(請求次數與資源⽆關)的場景

post : 安全、⼤資料、更多編碼型別

websocket 是⼀個 持久化的協議,

基於 http , 服務端可以

主動 push

相容:flash socket

⻓輪詢: 定時傳送 ajax

long poll : 傳送 --> 有訊息時再 response

new websocket(url)

ws.onerror = fn

ws.onclose = fn

ws.onopen = fn

ws.onmessage = fn

ws.send()

建⽴連線前,客戶端和服務端需要通過握⼿來確認對⽅:

客戶端傳送 syn (同步序列編號) 請求,進⼊ syn_send 狀態,等待確認

服務端接收並確認 syn 包後傳送 syn+ack 包,進⼊ syn_recv 狀態

客戶端接收 syn+ack 包後,傳送 ack 包,雙⽅進⼊ established 狀態

客戶端 -- fin --> 服務端, fin—wait

服務端 -- ack --> 客戶端, close-wait

服務端 -- ack,fin --> 客戶端, last-ack

客戶端 -- ack --> 服務端,closed

timer 階段: 執⾏到期的 settimeout / setinterval 佇列**

i/o 階段: 執⾏上輪迴圈殘流的 callback

idle , prepare

poll : 等待**

1. 執⾏**

2. 執⾏定時器

如有到期的 settimeout / setinterval , 則返回 timer 階段

如有 setimmediate ,則前往 check 階段

check

執⾏ setimmediate

close callbacks

jsonp : 利⽤

標籤不受跨域限制的特點,缺點是只能⽀持 get 請求

js

function

jsonp(url, jsonpcallback, success)

}

設定 cors: access-control-allow-origin:*

postmessage

xss 攻擊: 注⼊惡意**

cookie 設

置 httponly

轉義⻚⾯上的輸⼊內容和輸出內容

csrf: 跨站請求偽造,防護:

get 不修改資料

不被第三⽅⽹站訪問到⽤戶的 cookie

設定⽩名單,不被第三⽅⽹站請求

請求校驗

Hbase 之Client與服務端互動步驟流程解析

官網參考位址,請注意 hbase的client怎麼與server端進行互動的呢?具體步驟可以分為以下幾步 當集群的master全部掛了,會對執行時環境有什麼影響呢?因為client直接跳過master與regionserver進行請求互動,就算master程序掛了,整個集群都處於steady sta...

boost庫在工作(37)網路UDP服務端之七

include stdafx.h include include include include include include include include include 把當前時間轉換為字串。std string make daytime string 建立乙個udp的時間伺服器。軟體開發人...

服務端渲染與前端渲染以及node同構直出

簡單理解可以是 前後端不分離,優點 頁面效能好,有利於seo,缺點 前後端不分離,資料維護難度大 前端渲染就是利用ajax去拿取後端資料,前端頁面結構脫離伺服器,不需要伺服器返回html,css,js等。優點 結構清晰,各司其職 缺點,頁面載入速度依賴於js的載入速度 與服務端渲染對比 大名鼎鼎的n...