1. 程式人生 > >《圖解HTTP》第八章讀書筆記

《圖解HTTP》第八章讀書筆記

隨機數 防止 請求 我們 編碼 cookie 根據 圖解 esp

  第八章:確認訪問用戶身份的認證

1.HTTP/1.1使用的四種驗證方式:

  ①BASIC認證(不常用)

  ②DIGEST認證(不常用)

  ③SSL客戶端認證

  ④FormBase認證(基於表單認證,就是平常用的賬戶密碼登錄)

2.BASIC認證:就是把客戶端的用戶ID和密碼經Base64編碼後發送給服務器端,以此達到認證客戶端身份。(這是明文發送,密碼會被竊取。)

3.DIGEST認證:服務器端發送一個質詢碼nonce(就是一個隨機數),客戶端根據這個nonce,經過MD5運算後產生一個密碼字符串response(響應碼),然後把nonce和response一個發回去給服務器端,服務器端認證身份。(能防止密碼被竊聽,但是不能防止用戶偽裝)

4.SSL客戶端認證:SSL客戶端認證借由HTTPS的客戶端證書完成認證。(SSL客戶端認證是認證這一臺特定的電腦,不能認證是不是用戶本人)

  ①要將客戶端證書分發給客戶端,並且客戶端必須安裝此證書。

  ②服務器端會要求客戶端提供自己的證書

  ③服務器端驗證客戶端證書後,會取得證書內公開秘鑰(客戶端的公開秘鑰,服務器端用此加密,客戶端用私有秘鑰解密密文),然後開始HTTPS通信。

5.FormBase認證:就是平常用的賬戶密碼登錄,用來認證是不是用戶本人。

6.因為HTTP是無狀態協議,所以我們用Cookie來管理Session。意思就是:

  ①客戶端利用FormBase認證(就是發送賬戶密碼給服務器端)。

  ②服務器端根據這個賬戶發放一個Session ID(這個Session ID就是一個Session的編號,也就是記錄了這個用戶這個用戶所處的狀態),這個Session ID寫在響應報文Set-Cookie首部字段內。

  ③客戶端收到這個Session ID後,保存在Cookie內,下次發請求報文的時候帶上這個Cookie

  ④服務器端收到這個Cookie後(也就是收到這個Session ID),就可以識別這個用戶和他上次連接服務器所處的狀態

7.如果Session ID被盜,對方就可以偽裝成你的身份進行操作,所以Session ID存在一個有效期

《圖解HTTP》第八章讀書筆記