簡介
2020年春節假期被被新型冠狀病毒阻止了,呆在家裏太無聊了。就讀書充實自己吧!這份筆記後續還會不斷補充完整,畢竟一本書不是一天就能看完的。原文鏈接
一
HTTP中資源的定義方式
- URI(Uniform Resource Identifier): 統一資源標識符
- URL(Uniform Resource Locator): 統一資源定位符
- URN(Uniform Resource Name): 用特定命名空間的名字標識資源
三者關係型如下:
URI是一類更通用的資源標識符,URL是它的一個子集。URI是一個通用概念,由兩個主要的子集URL和URN構成,URL是通過描述資源的位置來標識資源的,URN是通過名字來識別資源的,與它們所處位置無關。
HTTP網絡協議棧
瀏覽器從遠程服務器獲取資源的大致流程
報文
報文分爲請求報文和響應報文,HTTP報文包含三個部分
- 起始行:
- 在請求報文中用來說明要做些什麼
- 在響應報文中說明出現了什麼情況
- 首部字段:
- 在響應報文中用來說明需要的MIME類型
- 在響應報文中說明了返回文檔的MIME類型
- 主體
- 在請求報文中說明要傳遞的請求參數
- 咋響應報文中說明服務器返回內容
TCP/IP
HTTP 是個應用層協議。HTTP無序操作網絡通信的具體細節,它把互聯網的細節都交給了通用、可靠的因特網傳輸協議TCP/IP,TCP/IP 提供了:
- 無差錯的數據傳輸
- 按序傳輸(數據總是按照發送的順序到達)
- 未分段的數據流(可以在任意時刻一任意尺寸將數據發送出去)
二
URL的三個組成部分
https://www.haicheng.website/passages/about-centos-firewall/
https
: 協議www.haicheng.website
: 主機(端口爲80)passages/about-centos-firewall/
: 資源路徑
HTTP狀態碼
版本號
在比較HTTP版本時,每個數字都必須進行單獨比較,以便確定那個版本更高,比如:HTTP/2.22就比HTTP/3的版本要高,因爲22大於3
三
HTTPS和HTTP在網絡協議棧上的位置
HTTP就是"HTTP over TCP over IP"這個"協議棧"中的最頂層,其安全版本的HTTPS就是在HTTP和TCP之間插入了一個密碼加密層。
TCP是如何傳輸數據的
- HTTP以流的形式將報文數據的內容通過一條打開的TCP連接按序傳輸
- TCP收到數據流之後,將其砍成段
- 將數據段封裝在IP分組中
- 通過因特網傳輸
TCP是如何保證連接的正確性
通過4個值確保TCP建立正確的連接
- 源IP
- 源端口
- 目的IP
- 目的端口
有關TCP的性能考慮
-
影響HTTP時延的幾個因素:
- DNS
- TCP建立連接和建立連接之後服務器返回的應答
- 服務器對業務的處理
- 服務器回送HTTP響應
-
影響TCP時延的幾個因素:(後面細看)
- TCP連接建立握手
- TCP慢啓動擁塞控制
- 數據聚集的Nagle算法
- 用於捎帶確認的TCP延時確認算法
- TIME_WAIT時延和端口耗盡
操作和優化連接的HTTP技術
什麼是串行事務時延?
在一個網頁中包含3個圖片,瀏覽器需要發起四次HTTP事務完成頁面加載;每個事務都需要一條新的連接,那麼連接時延和慢啓動時延就會疊加起來
解決串行事務時延 的技術:
- 並行連接:通過多條TCP連接發起並行HTTP請求
- 持久連接:重用TCP連接,以消除連接及關閉時延
- 管道化連接:通過共享的TCP連接發起併發的HTTP請求
- 複用連接:交替傳送請求和響應報文
四
Web服務器會提供哪些服務?
- 建立連接
- 如果客戶端已經打開了一條到服務器的持久連接,可以使用那條連接來發送它的請求。否則客戶端需要打開一條新的到服務器的連接;當客戶端與服務器建立連接之後,服務器判斷另一端是哪個客戶端並解析出IP地址並做好監視連接上的數據傳輸。(此處會用到客戶端識別技術)
- 接收連接
- 完成請求報文讀取
- 連接的輸入/輸出處理結構:
- 單線程Web服務器
- 多進程及多線程Web服務器
- 複用I/O的服務器
- 複用的多線程Web服務器
- 處理請求
- 訪問資源
- 資源映射
- 構建響應
- 若Web服務器識別出了資源,就執行請求中描述的動作,並返回響應報文
- 重定向用於以下情況:
- 永久刪除的資源 狀態碼:301
- 臨時刪除的資源 狀態碼:33或307
- URL增強 狀態碼:33或307
- 負載均衡 狀態碼:33或307
- 服務器關聯 狀態碼:33或307
- 規範目錄請求
- 發送響應
- 對於持久連接:正確計算Content-Length,併發送響應
- 對於非持久連接:服務器端發送響應後,關閉連接
- 記錄事務處理過程
- 記錄請求日誌
- 記錄請求日誌