1六、在瀏覽器地址欄輸入一個URL後回車,背後會進行哪些技術步驟?1七、談談DNS解析過程,具體一點

1六、在瀏覽器地址欄輸入一個URL後回車,背後會進行哪些技術步驟?ajax

 

第一種回答算法

一、查瀏覽器緩存,看看有沒有已經緩存好的,若是沒有chrome

2 、檢查本機host文件瀏覽器

三、調用API,Linux下Scoket函數 gethostbyname緩存

四、向DNS服務器發送DNS請求,查詢本地DNS服務器,這其中用的是UDP的協議安全

五、若是在一個子網內採用ARP地址解析協議進行ARP查詢若是不在一個子網那就須要對默認網關進行 DNS查詢,若是還找不到會一直向上找根DNS服務器,直到最終拿到IP地址(全球好像一共有13臺根服務器)服務器

六、這個時候咱們就有了服務器的IP地址 以及默認的端口號了,http默認是80 https是 443 端口號,會, 首先嚐試http而後調用Socket創建TCP鏈接,網絡

七、通過三次握手成功創建鏈接後,開始傳送數據,若是正是http協議的話,就返回就完事了,函數

八、若是不是http協議,服務器會返回一個5開頭的的重定向消息,告訴咱們用的是https,那就是說IP沒 變,可是端口號從80變成443了,好了,再四次揮手,完事,加密

九、再來一遍,此次除了上述的端口號從80變成443以外,還會採用SSL的加密技術來保證傳輸數據的安 全性,保證數據傳輸過程當中不被修改或者替換之類的,

十、此次依然是三次握手,溝通好雙方使用的認證算法,加密和檢驗算法,在此過程當中也會檢驗對方的 CA安全證書。

十一、確認無誤後,開始通訊,而後服務器就會返回你所要訪問的網址的一些數據,在此過程當中會將界面 進行渲染,牽涉到ajax技術之類的,直到最後咱們看到色彩斑斕的網頁

 

第二種回答

1. 瀏覽器檢查域名是否在緩存當中(要查看 Chrome 當中的緩存, 打開 chrome://net-internals/#dns)。

2. 若是緩存中沒有,就去調用 gethostbyname 庫函數(操做系統不一樣函數也不一樣)進行查詢。

3. 若是gethostbyname沒有這個域名的緩存記錄,也沒有在hosts` 裏找到,它將會向 DNS 服務器發送一條 DNS 查詢請求。DNS 服務器是由網絡通訊棧提供的,一般是本地路由器或者 ISP 的緩存 DNS 服務器。

4. 查詢本地 DNS 服務器

5. 若是 DNS 服務器和咱們的主機在同一個子網內,系統會按照下面的 ARP 過程對 DNS 服務器進行 ARP 查詢

6. 若是 DNS 服務器和咱們的主機在不一樣的子網,系統會按照下面的 ARP 過程對默認網關進行查詢

 

1七、談談DNS解析過程,具體一點

 

1.請求一旦發起,如果chrome瀏覽器,先在瀏覽器找以前有沒有緩存過的域名所對應的ip地址,有的 話,直接跳過dns解析了,如果沒有,就會找硬盤的hosts文件,看看有沒有,有的話,直接找到hosts 文件裏面的ip

2.若是本地的hosts文件沒有能獲得對應的ip地址,瀏覽器會發出一個dns請求到本地dns服務器,本地 dns服務器通常都是你的網絡接入服務器商提供,好比中國電信,中國移動等。

3.查詢你輸入的網址的DNS請求到達本地DNS服務器以後,本地DNS服務器會首先查詢它的緩存記錄, 若是緩存中有此條記錄,就能夠直接返回結果,此過程是遞歸的方式進行查詢。若是沒有,本地DNS 服務器還要向DNS根服務器進行查詢。

 

4.本地DNS服務器繼續向域服務器發出請求,在這個例子中,請求的對象是.com域服務器。.com域服務 器收到請求以後,也不會直接返回域名和IP地址的對應關係,而是告訴本地DNS服務器,你的域名的 解析服務器的地址。

5. 最後,本地DNS服務器向域名的解析服務器發出請求,這時就能收到一個域名和IP地址對應關係,本 地DNS服務器不只要把IP地址返回給用戶電腦,還要把這個對應關係保存在緩存中,以備下次別的用 戶查詢時,能夠直接返回結果,加快網絡訪問。

相關文章
相關標籤/搜索