緩存是一種保存資源副本並在下次請求時直接使用該副本的技術。當 web 緩存發現請求的資源已經被存儲,它會攔截請求,返回該資源的拷貝,而不會去源服務器從新下載。這樣帶來的好處有:緩解服務器端壓力,提高性能(獲取資源的耗時更短了)。web
HTTP使用明文傳輸,無加密,使用80端口;HTTPS也是HTTP協議,使用了TLS/SSL加密。
SSL工做流程:
1. 協商加密算法
2. 服務器鑑別
3. 會話密鑰計算
4. 安全數據傳輸
算法![]()
運輸層的傳輸控制協議,面向鏈接的,有兩個端點,經過socker鏈接,可靠交付, 全雙工通訊,面向字節流。
關注同步位和確認位置1,序號,確認號,AB狀態變化:
三報文握手:
緩存![]()
四揮手釋放:
![]()
第二次揮手後,TCP 鏈接處於半關閉(half-dose)狀態,B 能夠向A傳輸數據
http1.0:
1. 客戶端發出的報文header有「Connection:keep-alive」的請求。
2. 服務器接收後發現要求長鏈接,就在response的header中增長「Connection:keep-alive」,且不關閉鏈接。
3. 客戶端收到服務端的response後,發現其中包含」Connection:keep-alive「,確認是一個長鏈接,不關閉這個鏈接。並用該鏈接再發送request。
4. 轉到第一步,循環
http1.1:
1. 客戶端直接發送http1.1,服務器自動斷定爲長鏈接,在response的header中增長「Connection:keep-alive」,且不關閉鏈接。
2. 客戶端發現response中header有Connection:keep-alive,繼續用這個鏈接發送請求。
4. 轉到第一步,循環安全
這種技術是將全部的工做都交給服務器。服務器不斷地運行與動態文檔相 關聯的應 用程序,按期更新信息,併發送更新過的文檔。服務器
UDP用戶數據報協議:
1. 無鏈接
2. 不可靠鏈接,盡最大努力交付
3. 面向報文
4. 沒有擁堵控制
TCP傳輸控制協議:
1. 面向鏈接
2. 經過套接字的點對點鏈接
3. 可靠鏈接,有握手和揮手
4. 使用無結構字節流
HTTP超文本傳輸協議:
1. HTTP位於運輸層上面的應用層,TCP、UDP都處於運輸層
2. HTTP使用TCP鏈接網絡
序號 | 意義 | 說明 |
---|---|---|
1xx | 通知信息 | 表示請求收到了或正在處理 |
2xx | 成功 | 表示接受或知道了 |
3xx | 重定向 | 表示完成請求還要採起必須的行動 |
4xx | 客戶端錯誤 | 表示語法錯誤、不能完成 |
5xx | 服務器錯誤 | 表示服務器失效 |
Charles 假裝爲CA,Charles 經過本身的 CA 簽名了一個本身的公鑰,發送給客戶端,客戶端就誤覺得是服務器了,這樣以後的流程都會先走到 Charles 而後纔會走到目標服務器。併發
做用:確保可靠傳輸
1. A->B發送報文,B返回確認,說好窗口字節數和確認號。
2. A能夠生成下一個窗口值大小窗口,B目標窗口是確認號。A再發送窗口,B返回最高位確認序號。
3. A對最高序號確認,根據確認號向前移動,B也向前移動。
tcp![]()
![]()
就模仿TCP嘛,或者使用RUDP,RTP
1. 增長相似握手揮手過程,添加seq/ack機制
2. 增長髮送接收緩存
3. 超時重傳機制工具
公鑰原本就是暴露,私鑰纔要保存好。如今通常使用RSA非堆成算法,私鑰不暴露。性能
分段就是斷點續傳。加強校驗,好比實現 Last-Modified 來標識文件的最後修改時間,也可使用 ETag 頭來放置文件的惟一標識。
OSI七層,TCP四層,計算機網絡五層
![]()
![]()
IP傳運輸層TCP和UDP傳過來的數據
TCP傳應用層的HTTP、SMTP、FTP、DNS等的數據![]()
域名系統,從域名解析出IP地址
對稱:兩邊使用同樣的密鑰,例如AES非對稱:兩邊不同密鑰,一個公鑰,向外公開,一個私鑰,要保存好。例如RSA