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
functionjsonp(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...