瀏覽器相關的一些小記

從輸入url到獲得html的詳細過程html

  1. 瀏覽器根據 DNS 服務器獲得域名對應的 IP 地址
  2. 向這個 IP 的服務器發送 http 或 https 請求
  3. 服務器收到、處理並返回請求
  4. 瀏覽器獲得返回的內容

TCP是運輸層的面向鏈接的可靠的運輸協議,HTTP 是純粹的文本協議,它是規定了使用 TCP 協議來傳輸文本格式的一個應用層協議。TCP 協議是一條雙向的通信通道,HTTP 在 TCP 的基礎上,規定了 Request-Response 的模式。而HTTPS 是使用加密通道來傳輸 HTTP 的內容。可是 HTTPS 首先與服務端創建一條 TLS 加密通道。TLS 構建於 TCP 協議之上,它其實是對傳輸的內容作一次加密,因此從傳輸內容上看,HTTPS 跟 HTTP 沒有任何區別。json

HTTP格式:瀏覽器

  1. request:緩存

    • request line服務器

      • method
        (HTTP 請求執行的操做類型:GET、POST、HEAD等)
      • path
      • version
    • headcookie

      accept: text/html,application/xhtml+xml,application/xml;...(接收格式)
      accept-encoding: gzip, deflate, br (編碼方式)
      accept-language: zh-CN,zh;q=0.9(語言類型)
      cache-control: max-age=0 (控制緩存時效性)
      cookie: 客戶端存儲的cookie字符串
      upgrade-insecure-requests: 1
      user-agent: (瀏覽器標識)
    • body
      主要用於提交表單場景。(application/json、multipart/form-data、text/xml等)
  2. response:app

    • response line編碼

      • version
      • status code
      • status text
        (200:客戶端請求成功;301&302:永久性與臨時性跳轉;403:無權限,服務器拒絕提供服務;404:請求資源不存在;500:服務器發生不可預期的錯誤。503:服務器當前不能處理客戶端的請求。)
    • head加密

      connection: (鏈接類型,keep-alive表示複用鏈接)
      cache-control: public, max-age=86400 (緩存控制)
      content-length: 334 (內容長度)
      content-encoding: gzip(內容編碼方式)
      content-type: text/html; charset=utf-8(內容類型)
      date: Wed, 11 Sep 2019 10:17:59 GMT (日期)
      server: Tengine (服務端軟件類型)
      keep-alive:(保持鏈接不斷時須要的信息)
      status: 200
      vary: Accept-Encoding
      date: Tue, 10 Sep 2019 17:15:33 GMT(服務器日期)
      etag: 16151473764464638424
      expires: Wed, 11 Sep 2019 17:15:33 GMT 過時時間,)
    • body
      body就是要給瀏覽器解析、渲染的內容
/*
   1.獲得服務器的響應內容,解析代碼和構建 DOM 樹,此時只有節點和屬性,不包含任何的
樣式信息。
   2.接下來是 CSS 計算,把 CSS 規則應用到 DOM 樹上,爲 DOM 結構添加顯示相關屬性的
過程。
   3.而後是排版。最基本的排版方案是正常流排版,它包含了順次排布和折行等規則,這是一
個跟印刷排版相似的排版方案,也跟咱們平時書寫文字的方式一致,因此咱們把它叫作正常流。
同時瀏覽器又能夠支持元素和文字的混排,元素被定義爲佔據長方形的區域,還容許邊框、邊
距和留白,這個就是所謂的盒模型。
   4.最後就是根據這些樣式信息和大小信息,爲每一個元素在內存中渲染它的圖形,而且把它繪
制到對應的位置。位圖操做部分,這包括了渲染、合成和繪製三個部分。渲染過程把元素變成
位圖,合成把一部分位圖變成合成層,最終的繪製過程把合成層顯示到屏幕上。
*/
相關文章
相關標籤/搜索