1. 用戶輸入網(wǎng)址,瀏覽器發(fā)起DNS查詢請求
- 在瀏覽器中輸入www.qq.com域名,瀏覽器首先會在自己的緩存中查找是否有該域名對應的IP地址(若曾經(jīng)訪問過該域名且沒有清空緩存便存在)。
- 當瀏覽器緩存中無域名對應IP時操作系統(tǒng)會先檢查自己本地的hosts文件是否有這個網(wǎng)址映射關(guān)系,如果有,就先調(diào)用這個IP地址映射,完成域名解析。
- 如果hosts里沒有這個域名的映射,則查找本地DNS解析器緩存,是否有這個網(wǎng)址映射關(guān)系,如果有,直接返回,完成域名解析。
- 如果hosts與本地DNS解析器緩存都沒有相應的網(wǎng)址映射關(guān)系,首先會找TCP/IP參數(shù)中設置的首選DNS服務器,在此我們叫它本地DNS服務器,此服務器收到查詢時,如果要查詢的域名,包含在本地配置區(qū)域資源中,則返回解析結(jié)果給客戶機,完成域名解析,此解析具有權(quán)威性。
- 如果要查詢的域名,不由本地DNS服務器區(qū)域解析,但該服務器已緩存了此網(wǎng)址映射關(guān)系,則調(diào)用這個IP地址映射,完成域名解析,此解析不具有權(quán)威性。
- 如果本地DNS服務器本地區(qū)域文件與緩存解析都失效,則根據(jù)本地DNS服務器的設置(是否設置轉(zhuǎn)發(fā)器)進行查詢,如果未用轉(zhuǎn)發(fā)模式,本地DNS就把請求發(fā)至13臺根DNS,根DNS服務器收到請求后會判斷這個域名(.com)是誰來授權(quán)管理,并會返回一個負責該頂級域名服務器的一個IP。本地DNS服務器收到IP信息后,將會聯(lián)系負責.com域的這臺服務器。這臺負責.com域的服務器收到請求后,如果自己無法解析,它就會找一個管理.com域的下一級DNS服務器地址(qq.com)給本地DNS服務器。當本地DNS服務器收到這個地址后,就會找qq.com域服務器,重復上面的動作,進行查詢,直至找到www.qq.com主機。
- 如果用的是轉(zhuǎn)發(fā)模式,此DNS服務器就會把請求轉(zhuǎn)發(fā)至上一級DNS服務器,由上一級服務器進行解析,上一級服務器如果不能解析,或找根DNS或把轉(zhuǎn)請求轉(zhuǎn)至上上級,以此循環(huán)。不管是本地DNS服務器用是是轉(zhuǎn)發(fā),還是根提示,最后都是把結(jié)果返回給本地DNS服務器,由此DNS服務器再返回給客戶機。
DNS解析詳細過程參考
https://blog.csdn.net/m0_37812513/article/details/78775629
https://blog.csdn.net/zhangyuan19880606/article/details/51141610
https://www.cnblogs.com/smilenana/p/3414077.html
2. 建立TCP連接
瀏覽器通過DNS獲取到web服務器真的IP地址后,便向web服務器發(fā)起tcp連接請求,通過TCP三次握手建立好連接后,瀏覽器便可以將HTTP請求數(shù)據(jù)通過發(fā)送給服務器了。
3. 瀏覽器向 web 服務器發(fā)送一個 HTTP 請求
HTTP請求是一個基于TCP協(xié)議之上的應用層協(xié)議——超文本傳輸協(xié)議。一個http事務由一條(從客戶端發(fā)往服務器的)請求命令和一個(從服務器發(fā)回客戶端的)響應結(jié)果組成。
4. 發(fā)送響應數(shù)據(jù)給客戶端
Web服務器通常通過監(jiān)聽80端口,來獲取客戶端的HTTP請求。與客戶端建立好TCP連接后,web服務器開始接受客戶端發(fā)來的數(shù)據(jù),并通過HTTP解碼,從接受到的網(wǎng)絡數(shù)據(jù)中解析出請求的url信息以前其他諸如Accept-Encoding、Accept-Language等信息。Web服務器根據(jù)HTTP請求頭的信息,得到響應數(shù)據(jù)返回給客戶端。
5. 瀏覽器解析http response
- html文檔解析(DOM Tree)
- 瀏覽器發(fā)送獲取嵌入在HTML中的對象
- css解析(parser Render Tree)
- js解析
轉(zhuǎn)發(fā)文章
https://www.cnblogs.com/YeChing/p/6337378.html (簡潔明了的過程)
https://blog.csdn.net/bailu666666/article/details/81154249
https://blog.csdn.net/u014600626/article/details/78720763