一個http請求從用戶輸入網址開始到結束都發生了什么


一、一個http請求從開始到Django后台,到結束發生了什么
  1. 通過用戶輸入的域名解析出IP地址
  2. TCP/IP 三次握手
  3. 進入nginx---->django
    4.TCP/IP 四次揮手
1.1 通過用戶輸入的域名解析出IP地址
- 第一步: 客戶端先檢查本地是否有對應的IP地址緩存,找到就返回,沒有找到就向上一級DNS服務器發送請求,直到找到或根節點。 順序為: 瀏覽器緩存-->系統緩存-->路由器緩存-->ISP DNS緩存-->從根域名服務區遞歸搜索
1.2 TCP/IP 三次握手
  1. client先發送一個帶synchronize (SYN)標志的數據包給server,在設定的超時時間內等待server的回復,
  2. server 端接收到該數據包后,返回一個帶 SYN/ACK (acknowledge charactor) 標志的數據包以表示傳達確認信息。
  3. client 收到后再發送一個帶有ACK標識的數據包給server表示連接(握手)成功

連接成功后client給web服務器發送一個HTTP請求

1.3 請求進入nginx--->django
HTTP請求進入nginx: 反向代理:指服務提供方出一個代理,客戶請求只和代理打交道 如nginx代理:http請求進入nginx處理后,找到對應的業務處理服務器。靜態請求如CSS,JS,圖片等,就轉向靜態服務器,如果是動態請求,就把請求分發到Web應用服務器。 不管是靜態還是動態都有多台服務器,Nginx按照一定策略把請求向業務服務器進行分配,防止壓力集中到一台服務器上, 這就是所說的負載均衡 nginx還可配置一些防爬蟲、設置超時時間,文件大小允許等。如爬蟲>監控某一Ip如果在短時間類發起大量請求如1s內50次,就將其標記為黑名單。

HTTP分配到Django
一個請求在django的生命周期:
首先請求來到url路由系統,通過查詢本地url對應服務,將請求轉向相應的業務邏輯函數或類。業務邏輯在處理相應的數據庫、static、templates/html后將處理好的模版字符串返回,然后結果返回客戶端,經過瀏覽器相應渲染呈現在屏幕。


1.4 四次揮手
pass


免責聲明!

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



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