乙個http客戶端,通常是瀏覽器,與web伺服器的http埠(預設為80)建立乙個tcp套接字連線。
通過tcp套接字,客戶端向web伺服器傳送乙個文字的請求報文,乙個請求報文由請求行、請求頭部、空行和請求資料4部分組成。
web伺服器解析請求,定位請求資源。伺服器將資源複本寫到tcp套接字,由客戶端讀取。乙個響應由狀態行、響應頭部、空行和響應資料4部分組成。
若connection 模式為close,則伺服器主動關閉tcp連線,客戶端被動關閉連線,釋放tcp連線;若connection 模式為keepalive,則該連線會保持一段時間,在該時間內可以繼續接收請求。
客戶端瀏覽器首先解析狀態行,檢視表明請求是否成功的狀態**。然後解析每乙個響應頭,響應頭告知以下為若干位元組的html文件和文件的字符集。客戶端瀏覽器讀取響應資料html,根據html的語法對其進行格式化,並在瀏覽器視窗中顯示。
在瀏覽器位址列鍵入url,按下回車之後會經歷以下流程
1、瀏覽器向 dns 伺服器請求解析該 url 中的網域名稱所對應的 ip 位址;
2、解析出 ip 位址後,根據該 ip 位址和預設埠 80,和伺服器建立tcp連線;
3、瀏覽器發出讀取檔案(url 中網域名稱後面部分對應的檔案)的http 請求,該請求報文作為 tcp 三次握手的第三個報文的資料傳送給伺服器;
4、伺服器對瀏覽器請求作出響應,並把對應的 html 文字傳送給瀏覽器;
5、釋放 tcp連線;
6、瀏覽器將該 html 文字並顯示內容;
http請求生命週期流程
乙個http客戶端,通常是瀏覽器,與web伺服器的http埠 預設為80 建立乙個tcp套接字連線。通過tcp套接字,客戶端向web伺服器傳送乙個文字的請求報文,乙個請求報文由請求行 請求頭部 空行和請求資料4部分組成。web伺服器解析請求,定位請求資源。伺服器將資源複本寫到tcp套接字,由客戶端讀...
http請求生命週期流程
乙個http客戶端,通常是瀏覽器,與web伺服器的http埠 預設為80 建立乙個tcp套接字連線。通過tcp套接字,客戶端向web伺服器傳送乙個文字的請求報文,乙個請求報文由請求行 請求頭部 空行和請求資料4部分組成。web伺服器解析請求,定位請求資源。伺服器將資源複本寫到tcp套接字,由客戶端讀...
Django請求生命週期流程
傳送請求 http協議 1.請求來的時候解析封裝 響應走的時候打包處理 2.django預設wsgiref模組不能承受高併發 最大只有1000左右 上線之後會替換成uwsgi來增加併發量 3.wsgi跟wsgiref跟uwsgi是什麼關係 wsgi是協議 wsgiref和uwsgi是實現該協議的功能...