从浏览器输入URL到最终看到页面, 这其中经历了哪些过程 ?
從網絡原理來看
- 1. URL解析
- 2. 構造http請求
- 3. 構造完http請求就需要將數據傳給傳輸層了
- 4. 網絡層
- 5. 數據鏈路層
- 6.物理層
- 7. 路由器
- 8. 到達服務器的物理層
- 9. 解析成二進制數據
- 10. 服務器的數據鏈路層
- 11. 服務器的網絡層
- 12. 服務器的傳輸層
- 13. 服務器的應用層
- 14. 重復上述操作
- 15. 總圖解
1. URL解析
從瀏覽器輸入URL, 瀏覽器需要先解析URL, 并在DNS上查詢此url對應的ip地址
2. 構造http請求
解析完之后, 瀏覽器就需要構造一個GET請求, 并將攜帶的信息添加在URL上面. http請求的格式是
請求行 : 請求方法(GET) , 協議版本(http1.1) , URL
請求頭部header : 各種字段相當于鍵值對 中間用 = 區分 比如Content-length=10
空行
請求主體(body)
3. 構造完http請求就需要將數據傳給傳輸層了
由于http是基于TCP的應用層協議, 此時就是TCP
那么需要先進行3次握手建立連接的過程. 建立好連接之后
傳輸層給應用層報文加上傳輸層的頭部, 然后再發送給網絡層
4. 網絡層
網絡層再加上ip頭部, 當然其中受限于數據鏈路層的MTU最大限制1500字節,
所以網絡層可能需要進行拆包和組包
5. 數據鏈路層
數據鏈路層就需要加上數據鏈路層的報頭, 其中涉及到了 源mac地址和目的mac地址就是在同一個局域網內, 傳輸數據,
6.物理層
最后再進過物理層傳輸光電信號.
7. 路由器
由于從源ip地址傳輸到目的ip地址需要進過多個路由器轉發, 所以路由器是必不可少的. 其中有很多方法如何來選擇路由器, 哪一條路徑最短其中都是有各種算法的在這里就不詳細的講了 …
8. 到達服務器的物理層
此時經過多次的轉發, 光電信號終于到達了目的ip的物理層
9. 解析成二進制數據
之后就把光電信號解析成二進制的數據一層一層的向上傳達
10. 服務器的數據鏈路層
此時服務器的數據鏈路層就會將頭部去掉來解析, 并向上傳遞
11. 服務器的網絡層
將ip數據報組包, 并去掉頭部向上傳遞到傳輸層
12. 服務器的傳輸層
此時就會解析, 各種保證可靠性的手段, 比如超時重傳, 確認應答之類的
13. 服務器的應用層
此時服務器收到這個請求了, 那么就會返回一個響應并且其中攜帶了一個html文件用來顯示頁面
14. 重復上述操作
此時返回的響應就到達了客戶端的應用層
瀏覽器此時就可以解析這個響應, 并且渲染html頁面, 將其顯示在網頁上面了
15. 總圖解
客戶端發出請求, 服務器就返回響應.就這樣一來一回實現了客戶端與服務端之間的信息交流
總結
以上是生活随笔為你收集整理的从浏览器输入URL到最终看到页面, 这其中经历了哪些过程 ?的全部內容,希望文章能夠幫你解決所遇到的問題。