### 基于HTTP1.1標準
1. 1997年公布的HTTP1.1標準,到現在已經使用了22年
HTTP方法
HTTP協議格式
報文結構
首部字段
狀態碼
HTTP通信過程中代理
HTTP通信過程中網關
HTTP通信過程中隧道
SPDY
WebSocket
WebDAV
HTTPS
SSL
證書認證
加密機制
Web攻擊
### TCP/IP
1. 是一個協議族
### TCP/IP的分層管理:TCP/IP協議族里最重要的一點
1. 應用層
應用層決定了向用戶提供應用服務時通信的活動:HTTP協議也處于該層
2. 傳輸層
傳輸層對上層應用層,提供處于網絡連接中的兩臺計算機之間的數據傳輸
在傳輸層有兩個性質不同的協議:TCP(傳輸控制協議)和UDP(用戶數據報協議)
TCP協議:提供可靠的數據傳輸服務,確保數據最終送達到對方,
字節流服務:是為了方便傳輸,將大塊數據分割成以報文段為單位的數據包進行管理
為了確保數據傳輸到對方,TCP采用三次握手策略,握手過程中使用了ACK\SYN標志來確保到送對方
3. 網絡層
網絡層用來處理網絡上流動的數據包,通過怎樣的(傳輸路線)到達對方計算機,并把數據包傳送給對方,IP協議就處于這一層,IP協議的作用是把各種數據包傳送給到對方
IP地址:節點被分配到的地址,IP 地址可變換
MAC地址:網卡所屬的固定地址,MAC地址一般不會變
4. 數據鏈路層
用來處理連接網絡的硬件部分,包括控制操作系統、硬件的設備驅動等物理可見部分
### 與HTTP關系密切的三個協議:IP、TCP和DNS
1. DNS和HTTP協議一樣都處于應用層,它提供域名到IP之間的解析服務,或IP到域名之間的解析服務
### URI和URL
1. URI(統一資源標識符)
2. URL(統一資源占位符)
### 持久連接:Keep-alive
1. HTTP協議的初始版本,每發送一個請求,TCP連接就會產生一次連接,然后再斷開,因此,每次的請求會造成
無謂的連接與斷開,增加通信量的開銷,影響響應速度,在HTTP1.1中默認都是持久連接
2. 管線化(pipeline):持續連接使得請求可以并發,不需要像以前一樣請求一個,結束之后才能繼續請求一下,
現在可以實現并發請求
### Cookie
1. 通過在請求和響應中寫入Cookie信息來控制客戶端的狀態
2. 服務器響應頭SetCookie,通知客戶端保存Cookie,客戶端在請求中會帶上Cookie
### 壓縮傳輸內容編碼:常用的內容編碼有以下幾種
1. gzip
2. compress(UNIX系統的標準壓縮)
3. deflate
4. identity(不進行編碼)
### HTTP的分塊傳輸
1. 將內容進行分塊傳輸,可以讓瀏覽器逐步顯示頁面,不需要等全部加載完之后再渲染
### 內容協商:根據不同的要求返回不同的內容,比如中英文網站
### 狀態碼
1. 是客戶端向服務器發送請求時,描述返回的請求結果
2. 1XX:Infomational(信息性狀態碼):接收的請求正在處理
3. 2XX:Success(成功狀態碼):請求正常處理完畢
4. 3XX:Redirection(重定向狀態碼):需要進行附加操作以完成請求
5. 4XX:Client Error(客戶端狀態碼):服務器無法處理請求,錯誤由客戶端引起的
6. 5XX:Server Error(服務器狀態碼):服務器處理請求出錯,錯誤由服務端引起的
7. 301:永久性重定向
8. 302:臨時性重定向
### 通信數據轉發程序:代理、網關、隧道
1. 代理:可以理解為客戶端和服務器端的“中間人”角色,接收客戶端的請求發送給服務器,也接收服務器端的請求發送給客戶端
2. 使用代理服務器的理由有:利用緩存技術減少網絡帶寬的流量,組織內部針對特定網站的訪問控制,以獲取訪問日志為主要目的
3. 緩存代理:資源經過代理服務器的時候將資源緩存起來,客戶端再次請求這個資源的時候代理直接返回
4. 網關:可使通信線路上的服務器提供非HTTP協議服務
5. 隧道:隧道建立起一條客戶端與服務器之間的安全通信線路
### 緩存
1. 緩存是指代理服務器或客戶端本地磁盤內保存的資源副本
2. 利用緩存可減少對服務器的訪問,因此節約了通信流量和通信時間,也降低了服務器的壓力
3. 緩存的有效期限:需要向源服務器確認資源有沒有過期
### HTTP的缺點
1. 通信使用明文(不加密),內容可被他人看到
即使加密過的內容,依舊可以被看到,只是加密過后原內容看不懂
2. 不驗證通信方的身份,因此有可能遭遇偽裝
3. 無法證明報文的完整性,所以有可能已遭篡改
### HTTPS = SSL(secure + socket + layer:安全套接層) + HTTP
1. SSL建立安全通信線路后客戶端和服務端再進行通信
2.