HTTP通信傳輸過程詳解。


點擊一個URL以后,到最終頁面返回,中間都會發生什么過程。

 

一、點擊URL:new.qq.com

二、首先 DNS 解析

      linux 可以用dig 域名查看ip地址服務器

      1、一個域名可能回對應多個IP地址

  2、一個IP地址也可能對應多個域名

三、客戶端與服務器建立TCP連接

  1、client-->SYN----->server

  2、client<-ACK + SYN <- server

  3、client -> ACK----->server

四、客戶端封裝『請求報文』為     二進制encode后信息

五、發送『請求報文』

 

六、HTTP Server 接受 『請求報文』

七、WSGI數據解析,將『請求報文』封裝城HtttpRequest對象:WSGI Web Server Gateway Interface 服務器網關接口

           process_request

八、Django url映射 - 對應func

    process_vies

九、執行 view_func

  1 取出參數

  2 調用內部邏輯

  3 緩存、數據庫處理

    process_template

  4 模板渲染

  5封裝HttpResponse對象

    process_exception

    process_response

十 WSGI 進行協議解析,將HttpResponse對象封裝成『響應報文』

十一 HTTP Server將『響應報文』發送給客戶端

十二 HTTP Server 關閉 TCP連接

    四次揮手

  1 client <- FIN <- server

  2 client ->ACK->server

  (等待數據接受完成)

  3 client ->FIN ->server

  4 client <-ACK<-server

十三 客戶端接受『響應報文』

十四 解析、渲染、顯示

 

 

HTTP:建立在TCP協議之上的短連接協議。

 

TCP協議是一個全雙工協議

全雙工/半雙工(形象比喻,一個雙軌可以來回發送信息,一個單軌,一個發了,一個等待,一個軌道只能一個信號發送)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM