從用戶打開瀏覽器,輸入 baidu.com開始,到最后頁面出展示百度首頁結束,這中間都發生了什么呢?
第一步 在瀏覽器輸入url
url是統一資源符,包括http(明文),https(加密),ftp,file等。
首先,用戶在這里輸入了http://baidu.com,這一整串就構成了一個url,這樣就完成了整個過程的第一步。
第二步 域名解析
IP是Internet Protocol外語縮寫。在因特網中,它是能使連接到網上的所有計算機網絡實現相互通信的一套規則,規定了計算機在因特網上進行通信時應當遵守的規則任何廠家生產的計算機系統,只要遵守IP協議就可以與因特網互連互通。IP地址具有唯一性。
根據域名 baidu.com 查找所在的IP地址,才能找到目標,找到目標之后,開始傳用戶的Request。
域名解析流程大致如下:
1.瀏覽器緩存 - 瀏覽器會緩存DNS記錄一段時間
2.系統緩存 - 從Hosts文件查找是否有該域名和對應IP
3.路由緩存 - 一般路由器也會緩存域名信息
4.ISP DSN緩存 - 比如到電信的DNS上查找域名
5.如果沒找到,→根據域名服務器查找→請求轉到下一級
第三步 服務器處理
服務器是一臺安裝系統的機器,例如Linux,windows server 2012,其中系統安裝了處理請求的應用 web server
在通過域名解析找到百度后,用戶的Request傳給了百度的web服務器。web服務器在接收到用戶的Request之后,交給網站代碼,或者接受請求再反向代理到其他web服務器。
第四步 網站處理流程
MAC模型(model)-視圖(view)-控制器(controller)
瀏覽器發送請求,經由路由匹配交給控制器,調用模型接口來獲取所需的數據,再將數據填到視圖中對應的HTML模板,再傳回瀏覽器。
一個實例
終于,我們打開了百度頁面
baidu.com