瀏覽器輸入網址之後...

流程

在地址欄中輸入url

  • 瀏覽器是用http還是https訪問服務器呢? 如果沒有明確告知瀏覽器是用哪個協議,針對此種情況,瀏覽器有自己的預案,那就是默認使用http協議,除非小明輸入的是 https://zhihu.com
  • 所以輸入的網址被瀏覽器補齊爲 zhihu.com

域名解析

  • 瀏覽器在本地host文件中查找,檢查在該文件中是否有相應的域名、IP對應關係,如果有,則向其IP地址發送請求,如果沒有,再去找DNS服務器。
  • 由於本地 DNS 服務器沒有緩存不能直接將域名轉換爲 IP 地址,需要採用遞歸或者迭代查詢的方式依次向根域名服務器、頂級域名服務器、權威域名服務器發起查詢請求,直至找到一個或一組 IP 地址,返回給瀏覽器。
  • 瀏覽器向本地DNS服務器發送查詢請求報文,本地DNS服務器把查詢報文轉發到根DNS服務器,根DNS服務器注意到其com後綴,於是向本地DNS服務器返回comDNS服務器的IP地址。本地DNS服務器再次向comDNS服務器發送查詢請求,comDNS服務器注意到其www.yuque.com後綴並用負責該域名的權威DNS服務器的IP地址作爲迴應,再往下推導。

TCP連接

  • 通過 DNS 解析拿到服務器 IP 地址後,瀏覽器再通過系統調用 Socket 接口與服務器 443 (https)端口進行通信。
  • 三次握手:客戶端發送一個帶有SYN標誌的數據包給服務端,服務端收到後,回傳一個帶有SYN/ACK標誌的數據包以示傳達確認信息,最後客戶端再回傳一個帶ACK標誌的數據包,代表握手結束,連接成功。
  • 如果客戶端此前未與服務器建立會話,那麼雙方需要進行一次完整的 TLS 四次握手。
  • SSL/TLS協議,網站想要實現數據HTTPS加密協議訪問,保障數據的安全,就需要SSL證書,TLS是SSL與HTTPS安全傳輸層協議名稱
  • https://www.cnblogs.com/huanxiyun/articles/6554085.html

發送HTTP請求

  • 請求結構:報文首部、空行和報文主體。
  • 請求行作用補充??

服務器處理請求

  • web服務器諸如Apache、Ngnix、IIS等,解析用戶請求,知道了需要調度哪些資源文件,再通過資源文件處理用戶請求和參數,從數據庫查詢信息,最後將結果通過web服務器返回給瀏覽器客戶端。
  • 靜態資源和動態資源
  • web服務器和應用服務器??

返回響應結果

  • 響應報文
  • 常見狀態碼

斷開連接????

  • 爲了避免服務器與客戶端雙方的資源佔用和損耗,當雙方沒有請求或響應傳遞時,任意一方都可以發起關閉請求
  • 四次握手

瀏覽器解析HTML

  • 渲染引擎 Blink(基於 Webkit)和 JavaScript 引擎 V8
  • 瀏覽器通過解析HTML,生成DOM樹,解析CSS,生成CSS規則樹,然後通過DOM樹和CSS規則樹生成渲染樹。
  • 瀏覽器的解析過程並非是串連進行的,比如在解析CSS的同時,可以繼續加載解析HTML。
  • 瀏覽器只能解析靜態資源?

頁面佈局與渲染

  • replaint和reflow

參考:

https://www.cnblogs.com/xianyulaodi/p/6547807.html
https://blog.csdn.net/u013450405/article/details/79563810
https://zhuanlan.zhihu.com/p/43369093
https://segmentfault.com/a/1190000012092552
https://www.jianshu.com/p/c1dfc6caa520

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