請(qǐng)求響應(yīng)流程

1. 用戶打開(kāi)瀏覽器
2. 地址欄輸入我們需要訪問(wèn)的網(wǎng)站網(wǎng)址(url)
3. 瀏覽器通過(guò)DNS服務(wù)器獲取即將訪問(wèn)的網(wǎng)站IP地址
瀏覽器解析用戶輸入的URL地址—>域名+端口號(hào)
(1)瀏覽器會(huì)先檢查本地緩存中有沒(méi)有這個(gè)域名對(duì)應(yīng)的IP,怎么找:chrome://net-internals/#dns
(2)找系統(tǒng)的hosts文件中有沒(méi)有這個(gè)域名
(3)如果都沒(méi)找到,會(huì)對(duì)DNS服務(wù)器發(fā)起一個(gè)系統(tǒng)調(diào)用
4. 瀏覽器發(fā)起一個(gè)對(duì)這個(gè)IP的請(qǐng)求
(1)瀏覽器會(huì)通過(guò)一個(gè)本地的隨機(jī)端口建立一個(gè)與服務(wù)器指定端口之間的連接通道
(2)瀏覽器會(huì)將客戶端的一些信息打上一個(gè)“包”,將這個(gè)“包”通過(guò)這個(gè)鏈接通道發(fā)送到服務(wù)端(這個(gè)“包”叫做請(qǐng)求報(bào)文)
5. 服務(wù)器接受到這個(gè)請(qǐng)求,進(jìn)行相應(yīng)的處理
(1)“包”通過(guò)服務(wù)器指定端口進(jìn)入到Web Server(Apache);(三次握手,確保連接可靠)
(2)打開(kāi)客戶端提交過(guò)來(lái)的“包”,拿到包里面的請(qǐng)求路徑;
(3)根據(jù)請(qǐng)求的路徑對(duì)文件的擴(kuò)展名找到文件的MIME Type,在Apache的conf文件夾中有一個(gè)mime.type文件,里面對(duì)應(yīng)了不同擴(kuò)展名對(duì)應(yīng)的MIME Type;
(4)判斷文件類型是否為靜態(tài)文件,如果是靜態(tài)文件則直接讀取這個(gè)文件的內(nèi)容,將文件的內(nèi)容返回回去;如果不是靜態(tài)文件,交給對(duì)應(yīng)的“外包公司”,“外包公司”會(huì)讀取對(duì)應(yīng)文件的代碼并執(zhí)行代碼,最后將執(zhí)行結(jié)果返回給WebServer;
(5)服務(wù)端會(huì)把要發(fā)給客戶端的數(shù)據(jù)打上一個(gè)“包”,將這個(gè)包再通過(guò)之前的連接通道發(fā)回給客戶端。(這個(gè)包叫做響應(yīng)報(bào)文)
6. 服務(wù)器將處理完的結(jié)果返回給客戶端瀏覽器
7. 瀏覽器將服務(wù)端返回的結(jié)果呈現(xiàn)到界面上
(1)打開(kāi)服務(wù)端返回過(guò)來(lái)的“包”,找到包里面的Content-Type,這個(gè)屬性告訴我們服務(wù)端返回給我們的是什么文件,以及以什么方式進(jìn)行的編碼;
(2)根據(jù)Content-Type決定如何處理響應(yīng)的內(nèi)容
(3)如果是html則渲染到界面上,如果其中有請(qǐng)求又會(huì)重新走上面的這一套路線。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容