從輸入url後按下回車開始
因爲可能記錄了地址 看是否要redirect 因爲可能記錄了永久跳轉成新的地址
再看緩存 沒有緩存再去服務器 首先查找DNS
創建TCP連接
發送http請求數據包
返回響應數據 結束接受返回
http/0.9
只有get
沒有header等描述數據的信息
服務器發送完畢就關閉TCP連接
http/1.0
增加了post header put等命令
增加了status code 和 header
增加多字符集支持、多部分發送、權限、緩存
http/1.1
支持持久連接 一個http請求 會創建tcp不關閉
增加了pipeline 可以再同一個連接發送多個請求
增加了host和其他命令 host可以同一個集羣部署多個服務
http2
所有數據二進制傳輸
同一個連接裏面發送多個請求不需要按照順序來
頭信息壓縮以及推送等提高效率的功能
(之前都是客戶端主動發送請求,服務器被動,現在可以服務器主動推送)
就是爲了解決傳輸性能不足的問題
uniform resource identifier
URI 統一資源標識符 包括 URL URN
uniform resource locator 統一資源定位器
urn 永久統一資源定位符 防止連接換位置導致404notfound
目前沒有非常成熟的解決方案
首部--> 主題之間有一個空行
常用GET POST 方法
code 就是 404 200 301 501 等
下載一個nodejs.org
使用node -v
使用windows命令行工具
git-scm.com/download/win
cache-control
可緩存性
public 任何人都可以緩存
private 只有發起請求的瀏覽器
no-cache
cookie
服務端 通過 set-cookie設置
下次請求自動帶上 可以設置很多鍵值對
屬性:
max-age 和expires 設置過期時間
secure只在https時候發送
HttpOnly無法通過document.cookie訪問
HTTPS
私鑰 只放在服務器上
公鑰
過程是:客戶端發送生成的隨機數和加密套件(支持加密的算法供選擇)
服務器生成隨機數並且把公鑰(證書)和選擇的加密算法發送給客戶端
客戶端通過證書(公鑰)生成預主祕鑰(一個新的隨機數,總共有三個,並且用公鑰加密了)發送給服務器
然後服務器由自己的私鑰解密預主祕鑰
這時雙方選擇同一個加密套件根據三個隨機數生成主密鑰,這時開始傳輸由主密鑰加密的數據
HTTP2
信道複用
信道複用即頻分複用(FDM,Frequency Division Multiplexing),就是將用於傳輸信道的總帶寬劃分成若干個子頻帶(或稱子信道),每一個子信道傳輸1路信號。要求總頻率寬度大於各個子信道頻率之和,同時爲了保證各子信道中所傳輸的信號互不干擾,應在各子信道之間設立隔離帶,這樣就保證了各路信號互不干擾(條件之一)。特點是所有子信道傳輸的信號以並行的方式工作,每一路信號傳輸時可不考慮傳輸時延,因而頻分複用技術取得了非常廣泛的應用。頻分複用技術除傳統意義上的頻分複用(FDM)外,還有一種是正交頻分複用(OFDM)。
中文名
分幀傳輸 每一幀都有上下文的聯繫 所以可以不分先後順序發送
Server push 服務端可以主動推送服務
http1.1只能串行 等第一個請求返回後才能處理第二個請求
而http2可以 只創建一個http連接進行多個http請求的處理