標籤:伺服器 一段 緩衝dns 一個 之間 資料轉送 串連 targe 調用
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到頁面返回的全過程