HTTP權威指南(三)

2021-08-19 14:10:22 字數 2880 閱讀 4344

1.個性化接觸

2.http首部

from:使用者的e-mail位址

user-agent:使用者的瀏覽器軟體

referer:使用者**頁面的url

以及等等其他的

3.客戶端ip位址

通常在http首部並不包含客戶端的ip位址,但web伺服器可以找到承載http請求的tcp連線另一端的ip位址

但是該方法有很多缺點:識別的是機器不是使用者,動態分配ip,nat轉換,**等等

4.使用者登入

通過authorization和www-authenticate首部完成驗證

5.胖url

為每個使用者生成特定版本的url來追蹤使用者的身份

6.cookie

當前識別使用者,實現持久會話的最好方式

會話cookie和持久cookie區別在於過期時間(會話cookie在關閉瀏覽器後就自動刪除)

cookie域屬性:domain,控制哪些站點可以看到這個cookie

cookie路徑屬性:path,在這個屬性列出的url路徑字首下的所有cookie都是有效的

(1)cookies版本0

set-cookie首部:強制的key和value,可選的expires(定義cookie的實際生存期),可選的domain(只向指定的伺服器主機名傳送cookie),可選的path(為特定的路徑傳送cookie),可選的secure(只有在使用ssl連線是傳送cookie)

cookie首部:key-value形式

(2)cookies版本1

set-cookie2首部:強制的key和value,強制的version(rfc2965為1),可選的comment(說明伺服器準備如何使用這個cookie),可選的commenurl,可選的discard(客戶端程式終止時,指示客戶端放棄這個cookie),可選的domain,可選的max-age(用於設定以秒為單位的cookie生存期),可選的path,可選的port(只對指定埠號提供cookie),可選的secure

cookie首部:key-value形式

cookie2首部:負責在能夠理解不同cookie規範版本的客戶端與伺服器之間進行互操作性的協商

1.認證

1.1 http的質詢/響應認證框架

1.2 認證協議與首部

認證的四個步驟

步驟首部

描述方法/狀態

請求第一條請求沒有認證資訊

get質詢

www-authenticate

說明需要提供使用者名稱和密碼

401授權

authentication

客戶端重新傳送請求並攜帶新首部

get成功

authentication-info

如果正確就返回文件

200

1.3安全域:通過realm指令

2.基本認證

使用base-64編碼將使用者名稱和密碼進行編碼然後傳送

3.基本認證的安全缺陷

(1)基本認證通過網路傳送使用者名稱和密碼,明文形式傳送+base-64加密很容易被破解

(2)捕獲加密後的字串來訪問伺服器

(3)相同的使用者名稱和密碼

(4)沒有提供任何針對**和作為中間人的中間節點的防護措施

(5)假冒伺服器很容易騙過基本認證

1.摘要認證的改進

(1)用摘要保護密碼:客戶端不會傳送密碼,而是會傳送乙個「指紋」或密碼的「摘要」

(2)單項摘要:主要用於將無限的輸入值轉換為有限的濃縮輸出值,諸如md5

(3)用隨機數方式重放攻擊:客戶端在計算摘要之前要先將隨機數令牌附加到密碼上去

(4)摘要認證的握手機制:類似基本認證,但是需要伺服器計算隨機數傳送給客戶端

2.摘要的計算

3.增強保護質量

4.應該考慮的實際問題:多重質詢、差錯處理、保護空間、重寫uri、快取

5.安全性考慮

1.保護http的安全:https是最流行的http安全形式,使用https時,所有的http請求和響應資料在傳送到網路之前,都要進行加密。https在http下面提供了乙個傳輸級的密碼安全層(ssl/tls),大部分編譯碼工作在ssl中完成,所以在大多數情況下只需要用ssl的輸入輸出呼叫取代tcp的呼叫

2.數字加密

3.對稱金鑰加密技術:編碼時使用的金鑰值等於解碼時使用的金鑰值

(1)金鑰長度與列舉攻擊

(2)建立共享金鑰:傳送者和接收者有乙個共享的保密金鑰

4.公開金鑰加密技術:公開金鑰加密技術使用了兩個非對稱金鑰,乙個用來對主機報文編碼,另乙個用來對主機報文解碼

rsa演算法、混合加密系統和會話金鑰

5.數字簽名:附加在報文上的特殊加密校驗碼

6.數字證書

通常包含:物件的名稱、過期時間、證書發布者、來自證書發布者的數字簽名、物件的公開金鑰等等

用證書對伺服器進行認證

7.https——細節介紹

https將http協議與一組強大的對稱、非對稱和基於證書的加密技術結合在一起

如果url方案是http,預設開啟80埠

如果url方案是https,預設開啟443埠

建立安全連線:首先開啟伺服器443埠連線,一旦建立了tcp連線,客戶端和伺服器就會初始化ssl層,對加密引數進行溝通,並交換金鑰。握手完成之後,ssl初始化就完成了,客戶端就可以將請求報文傳送給安全層了。在將這些報文傳送給tcp之前,要先對其進行加密

ssl握手:交換協議版本號、選擇乙個兩端都了解的密碼、對兩端的身份進行認證、生成臨時的會話金鑰,以便加密通道

8.例子

9.通過**以隧道形式傳輸安全流量

http通過新的名為connect的擴充套件方法來傳送明文形式的端點資訊。connect方法會告訴**,開啟一條到所期望主機和埠號的連線

HTTP權威指南

web 伺服器會為所有 http 物件資料附加乙個 mime 型別,content type image jpeg,content length 12984 伺服器資源名被稱為統一資源識別符號 uniform resource identifier,uri uri 就像網際網路上的郵政位址一樣,在世...

《http權威指南》閱讀筆記(三)

http報文組成 請求報文 頭部資訊 header 實體資訊 entity method 主要包括,head,put,delete,get,post,head 其中head,get,post常用 put,delete 不常用 head只是需要返回影響頭部 響應報文 http 版本號 狀態碼 描述 頭...

《HTTP權威指南》學習筆記(三) HTTP報文

http 網際網路的信使 http報文 信使用來搬東西的包裹 http報文 http應用程式之間傳送的資料塊 組成 元資訊開頭 文字形式,描述報文的內容和含義 可選的資料部分。三部分組成 報文的語法 兩類 請求報文和響應報文 請求報文格式 響應報文格式 起始行 請求行 說明要做些什麼 響應行 說明發...