1. 程式人生 > >輸入url到頁面返回的全過程

輸入url到頁面返回的全過程

工作原理 域名 .com 結果 過程 dns 結合 叠代 自己的

1. 我們輸入一個域名:www.baidu.com,然後點擊確認;

2. 瀏覽器查找域名的IP地址。查找過程如下:

首先是瀏覽器緩存,瀏覽器會緩存DNS記錄一段時間;

如果在瀏覽器緩存裏沒有找到需要的記錄,瀏覽器會做一個系統調用,獲取系統緩存中的記錄;

然後是路由器緩存,路由器一般會有自己的緩存;

如果前者都沒有找到,就需要從本地域名服務器開始進行DNS查詢了。詳細的DNS查詢過程我在DNS工作原理及過程中講到過。

3. 現在瀏覽器找到了域名的IP地址,則需要向Web服務器建立TCP連接,然後發送HTTP請求了。TCP連接過程我在TCP中講到過,具體的請求過程我在HTTP中講到過。

好吧,我們結合DNS、TCP和HTTP來詳細地說一下輸入url到頁面返回的全過程吧。

1. 我們輸入一個域名:www.baidu.com

2. 瀏覽器查找瀏覽器緩存,如果有域名的IP地址則返回,如果沒有繼續查找;

3. 系統查找系統緩存,如果有域名的IP地址則返回,如果沒有繼續查找;

4. 路由器查找路由器緩存,如果有域名的IP地址則返回,如果沒有繼續查找;

5. 本地域名服務器采用叠代查詢,它先向一個根域名服務器查詢;

6. 根域名服務器告訴本地域名服務器,下一次應查詢的頂級域名服務器dns.com的IP地址;

7. 本地域名服務器向頂級域名服務器dns.com進行查詢;

8. 頂級域名服務器dns.com告訴本地域名服務器,下一次應查詢的權限域名服務器dns.baidu.com的IP地址;

9. 本地域名服務器向權限域名服務器dns.baidu.com進行查詢;

10. 權限域名服務器dns.baidu.com告訴本地域名服務器,所查詢的主機www.baidu.com的IP地址;

11. 本地域名服務器最後把查詢結果告訴主機;

12. 主機瀏覽器獲取到Web服務器的IP地址後,與服務器建立TCP連接;

13. 瀏覽器所在的客戶機向服務器發出連接請求報文;

14. 服務器接收報文後,同意建立連接,向客戶機發出確認報文;

15. 客戶機接收到確認報文後,再次向服務器發出報文,確認已接收到確認報文;

16. 此處客戶機與服務器之間的TCP連接建立完成,開始通信;

17. 瀏覽器發出取文件命令:GET;

18. 服務器給出響應,將指定文件發送給瀏覽器;

19. 瀏覽器釋放TCP連接;

20. 瀏覽器所在主機向服務器發出連接釋放報文,然後停止發送數據;

21. 服務器接收到釋放報文後發出確認報文,然後將服務器上未傳送完的數據發送完;

22. 服務器數據傳輸完畢後,向客戶機發送連接釋放報文;

23. 客戶機接收到報文後,發出確認,然後等待一段時間後,釋放TCP連接;

24. 瀏覽器顯示頁面中所有文本。

輸入url到頁面返回的全過程