當網絡通訊時採用TCP協議時,在真正的讀寫操做以前,server與client之間必須創建一個鏈接,當讀寫操做完成後,雙方再也不須要這個鏈接時它們能夠釋放這個鏈接,鏈接的創建是須要三次握手的,而釋放則須要4次揮手,因此說每一個鏈接的創建都是須要資源消耗和時間消耗的。安全
三次握手創建鏈接:服務器
握手過程當中傳送的包裏不包含數據,三次握手完畢後,客戶端與服務器才正式開始傳送數據。理想狀態下,TCP鏈接一旦創建,在通訊雙方中的任何一方主動關閉鏈接以前,TCP 鏈接都將被一直保持下去。網絡
經典的三次握手示意圖:性能
經典的四次握手關閉圖:優化
所謂長鏈接,指在一個TCP鏈接上能夠連續發送多個數據包,在TCP鏈接保持期間,若是沒有數據包發送,須要雙方發檢測包以維持此鏈接,通常須要本身作在線維持(不發生RST包和四次揮手)。3d
鏈接→數據傳輸→保持鏈接(心跳)→數據傳輸→保持鏈接(心跳)→……→關閉鏈接(一個TCP鏈接通道多個讀寫通訊)。server
這就要求長鏈接在沒有數據通訊時,定時發送數據包(心跳),以維持鏈接狀態。blog
短鏈接是指通訊雙方有數據交互時,就創建一個TCP鏈接,數據發送完成後,則斷開此TCP鏈接(管理起來比較簡單,存在的鏈接都是有用的鏈接,不須要額外的控制手段)。資源
鏈接→數據傳輸→關閉鏈接。cli
SPDY協議是Google提出的基於傳輸控制協議(TCP)的應用層協議,經過壓縮、多路複用和優先級來縮短加載時間。該協議是一種更加快速的內容傳輸協議。
SPDY協議的目標是優化HTTP協議的性能,經過壓縮、多路複用和優先級等技術,縮短網頁的加載時間並提升安全性。SPDY協議核心思想是儘可能減小TCP鏈接數,而對於HTTP的語義未作太大修改(好比,HTTP的GET和POST消息格式保持不變),基本上兼容HTTP協議。