聊聊在瀏覽器輸入網址到打開網頁,中間的過程

背景分析:
這題考查的是面試者對整個上網概念以及背後流程的瞭解。而俗稱的上網大致分爲三個方面:
1:客戶端(也稱用戶端,較常用的就是萬維網使用的網頁瀏覽器)。
2:網絡傳輸層(兩臺計算機經過計算機網絡進行的數據通信)。
3:服務端(爲客戶端提供服務,提供資源,保存客戶端數據的一種服務程序)。

一:URL解析
名詞解釋:
URL :(Uniform Resource Locator)統一資源定位符,用於互聯網上不同資源的標示。

1:瀏覽器本地解析URL(一般是做格式化檢查以及確認用http還是https協議,默認是http協議)。
2:瀏覽器本地緩存查找url對應ip。
3:本地host文件查找對應ip。
4:本地路由器dns查看對應ip。

若上面都查不到,則要請求到dns服務器查找ip。
1::服務商dns檢查緩存是否存在對應ip。
2:若不存在緩存或者緩存過期 則到根域名服務商上查找對應ip。
3:根域名服務商也是先檢查緩存,若無,則檢查域名爲哪個dns服務商負責解析。然後請求轉發。獲得域名對應ip。

最後:ip返回到本地服務商的dns,本地服務商dns更新緩存。客戶端成功拿到ip。(至於爲啥一定要拿到ip,因爲我們的tcp/ip協議很任性的只能識別ip)

 二:網絡傳輸通信
1:客戶端拿到ip地址後,想要進行通信,先要和對方取得聯繫。看對方在不在,這個通常是由三次握手來實現。

三次握手補充:客戶端和服務器一共發送三個包,同步連接雙方的序列號和確認號並交換 TCP) 建立tcp連接。與目標服務器建立短連接。
通俗的說就是這樣:

客戶端:在家麼,想去你家看看你。
服務器:在呀,歡迎來玩啊。
客戶端:馬上到。

2:三次握手完成後,tcp和服務器之間就建立了一個可靠地虛擬通道。瀏覽器知道了這個消息後。就將http請求消息打包,通過tcp協議發送給了服務端。

3:服務端收到請求報文後,處理報文信息,處理完成後將數據打包返回給客戶端啊。
4:通信完成後,通過四次揮手,拆除tcp連接。客戶端或服務器均可主動發起揮手動作。
5:最後,客戶端拿到返回數據。

 三:頁面渲染
1:瀏覽器會將返回的HTML通過深度遍歷解析成一個DOM樹。
2:將CSS解析成 CSS Rule Tree 。
3:根據DOM樹和CSSOM來構造 Rendering Tree。

補充(CSSOM是一個建立在web頁面上的 CSS 樣式的映射,它和DOM類似,但是隻針對CSS而不是HTML)

4:最後通過Rendering Tree,瀏覽器就可以知道每個節點和各節點css的關係,再算出每個節點在屏幕的位置就可以繪製出每個節點了。
上述渲染過程爲從上而下,逐步完成。即瀏覽器繪製了一部分就會顯示一部分出來,再繼續計算下面的部分。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章