點擊一個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協議是一個全雙工協議
全雙工/半雙工(形象比喻,一個雙軌可以來回發送信息,一個單軌,一個發了,一個等待,一個軌道只能一個信號發送)
