1. HTTP協議用於客戶端和服務器端之間的通訊
web
規定:請求從客戶端發出,服務器端響應請求,即客戶端開始創建通訊,報文格式以下
安全
(1)請求報文格式;請求方法+請求URI+協議版本+可選的請求首部字段+內容實體
服務器
(2)響應報文格式:協議版本+狀態嗎+解釋狀態碼的緣由短語+可選的響應首部字段以及實體主體
cookie
2. HTTP是不保存狀態的協議網絡
(1)無狀態協議,即不作持久化處理,以前的訪問信息不予記錄,每一次都是新的請求,後爲了保持狀態引入了cookie技jsp
術。
性能
(2)HTTP請求URI定位資源,若是不是訪問特定資源而是對服務器自己發起請求,可使用*代替URI
測試
3. 告知服務器意圖的HTTP方法加密
(1)GET:當客戶端要從服務器中讀取某個資源時,使用GET 方法。GET 方法要求服務器將URL 定位的資源放在響應報文的數據部分,回送給客戶端,即向服務器請求某個資源。使用GET 方法時,請求參數和對應的值附加在 URL 後面,利用一個問號(「?」)表明URL 的結尾與請求參數的開始,傳遞參數長度受限制。例如,/index.jsp?id=100&op=bind。若是請求資源是文本,原樣返回;若是是CGI,返回執行後的結果spa
(2)POST:用來傳輸實體的主體(get也能夠但通常不用),主要目的並非獲取響應的主體內容,當客戶端給服務器提供信息較多時可使用POST 方法,POST 方法向服務器提交數據,好比完成表單數據的提交,將數據提交給服務器處理。GET 通常用於獲取/查詢資源信息,POST 會附帶用戶數據,通常用於更新資源信息。POST 方法將請求參數封裝在HTTP 請求數據中,以名稱/值的形式出現,能夠傳輸大量數據;
(3)PUT:傳輸文件,相似FTP,因爲任何人均可上傳,存在安全性問題,通常不用
(4)HEAD:與get同樣,只是不返回報文主體部分,用於確認URI的有效性及資源更新的日期和時間等
(5)DELETE:刪除文件,與PUT相反的方法,請求URI刪除指定的資源,不帶驗證機制,通常不用需配合使用
(6)OPTIONS:詢問支持的方法,用來查詢針對請求URI指定的資源支持的方法
(7)TRACE;追蹤路徑,讓web服務器將以前的請求通訊返回給客戶端的方法,200 ok等,不經常使用,易引起XST攻擊
(8)CONNECT:要求用隧道協議鏈接代理,與代理服務器通訊時創建隧道,主要使用SSL和TLS協議把內容加密後隧道傳輸
4. 使用方法下達命令
(1)支持的方法列表
1 | GET | 請求指定的頁面信息,並返回實體主體。 |
2 | HEAD | 相似於get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭 |
3 | POST | 向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST請求可能會致使新的資源的創建和/或已有資源的修改。 |
4 | PUT | 從客戶端向服務器傳送的數據取代指定的文檔的內容。 |
5 | DELETE | 請求服務器刪除指定的頁面。 |
6 | CONNECT | HTTP/1.1協議中預留給可以將鏈接改成管道方式的代理服務器。 |
7 | OPTIONS | 容許客戶端查看服務器的性能。 |
8 | TRACE | 回顯服務器收到的請求,主要用於測試或診斷。 |
9 | PATCH | 實體中包含一個表,表中說明與該URI所表示的原內容的區別。 |
10 | MOVE | 請求服務器將指定的頁面移至另外一個網絡地址 |
11 | COPY | 請求服務器將指定的頁面拷貝至另外一個網絡地址。 |
12 | LINK | 請求服務器創建連接關係。 |
13 | UNLINK | 斷開連接關係。 |
14 | WRAPPED | 容許客戶端發送通過封裝的請求。 |
15 | Extension-mothed | 在不改動協議的前提下,可增長另外的方法。 |
5. 持久鏈接節省通訊量
(1)HTTP初始版本,鏈接一次要斷開一次,麻煩,後來就改爲不是每次的請求都形成無謂的TCP創建鏈接和斷開這些開銷
(2)管線化:持久鏈接使得多數請求以管線化方式發送成爲可能,即同時發送多個請求
6. 使用cookie的狀態管理
(1)不用每次跳轉頁面從新登陸,在請求和響應報文中寫入cookie信息控制客戶端狀態,請求報文(沒有cookie信息的狀態)---響應報文(服務器端生成cookie信息)---請求報文(自動發送保存着的cookie信息)