1. 程式人生 > 實用技巧 >Django使用Channels實現WebSocket

Django使用Channels實現WebSocket

tcp三次握手與四次揮手

tcp三次握手流程圖

tcp三次握手的原因

  • 為了實現可靠資料傳輸, TCP 協議的通訊雙方, 都必須維護一個序列號, 以標識傳送出去的資料包中, 哪些是已經被對方收到的。 三次握手的過程即是通訊雙方相互告知序列號起始值, 並確認對方已經收到了序列號起始值的必經步驟
  • 如果只是兩次握手, 至多隻有連線發起方的起始序列號能被確認, 另一方選擇的序列號則得不到確認

tcp四次揮手流程圖

TCP滑動視窗

TCP滑動視窗的解析圖

HTTP

什麼是Http協議無狀態協議?怎麼解決Http協議無狀態協議?
  • 無狀態協議對於事務處理沒有記憶能力缺少狀態意味著如果後續處理需要前面的資訊
    • 也就是說,當客戶端一次HTTP請求完成以後,客戶端再發送一次HTTP請求,HTTP並不知道當前客戶端是一個”老使用者“。
  • 可以使用Cookie來解決無狀態的問題,Cookie就相當於一個通行證,第一次訪問的時候給客戶端傳送一個Cookie,當客戶端再次來的時候,拿著Cookie(通行證),那麼伺服器就知道這個是”老使用者“。
HTTP請求報文與響應報文格式
  • 請求:
 請求行(請求方法,url,http版本 )
 請求頭
 請求體(請求的報文)
  • 響應
響應行(http版本,狀態碼,狀態碼描述)
響應頭
響應體
在瀏覽器輸入URL,按下回車經歷的歷程
1.DNS域名解析
2.TCP連線(三次握手)
3.傳送HTTP請求(HTTP請求報文格式)
4.伺服器處理請求並返回HTTP報文(HTTP響應報文格式)
5.瀏覽器根據響應的報文解析渲染頁面
6.連線結束