HTTP認證方式

2021-07-10 05:38:51 字數 2271 閱讀 3117

閱讀目錄

什麼是http基本認證

http基本認證的過程

http基本認證的優點

每次都要進行認證

http基本認證和https一起使用就很安全

http oauth認證

其他認證

客戶端的使用

桌面應用程式也通過http協議跟web伺服器互動, 桌面應用程式一般不會使用cookie, 而是把 "使用者名稱+冒號+密碼"用base64編碼的字串放在http request 中的header authorization中傳送給服務端, 這種方式叫http基本認證(basic authentication)

當瀏覽器訪問使用基本認證的**的時候, 瀏覽器會提示你輸入使用者名稱和密碼,如下圖

假如使用者名稱密碼錯誤的話, 伺服器會返回401 如下圖

第一步:  客戶端傳送http request 給伺服器, 

第二步:  因為request中沒有包含authorization header,  伺服器會返回乙個401 unauthozied 給客戶端,並且在response 的 header "www-authenticate" 中新增資訊。

第三步:客戶端把使用者名稱和密碼用base64編碼後,放在authorization header中傳送給伺服器, 認證成功。

第四步:伺服器將authorization header中的使用者名稱密碼取出,進行驗證, 如果驗證通過,將根據請求,傳送資源給客戶端

使用fiddler inspectors 下的auth 選項卡,可以很方便的看到使用者名稱和密碼:

http基本認證,簡單明瞭。rest api 就是經常使用基本認證的

http協議是無狀態的, 同乙個客戶端對 伺服器的每個請求都要求認證

把 "使用者名稱+冒號+密碼" 用base64編碼後的string雖然用肉眼看不出來, 但用程式很容易解密,上圖可以看到fiddler就直接給解密了。 所以這樣的http request 在網路上,如果用http傳輸是很不安全的。 一般都是會用https傳輸, https是加密的, 所以比較安全.

oauth 對於http來說,就是放在authorization header中的不是使用者名稱密碼, 而是乙個token.

微軟的skydrive 就是使用這樣的方式, 如下圖

除了基本認證(basic authentication), 還有摘要認證 digest authentication, wsse(ws-security)認證

客戶端如果要跟「使用基本認證的**」互動。 非常很簡單,把使用者名稱密碼 加在authorization header中就可以了。 c#

linux下的curl

附: http協議 系列教程, (**中, 敬請期待)

http協議 (一) http協議詳解

http協議 (二) 基本認證

http協議 (三) 壓縮

http協議 (四) 快取

http協議 (五) **

http協議 (六) 狀態碼詳解

http協議 (七) cookie

如果您看了本篇部落格,覺得對您有所收穫,右下角的[推薦]

HTTP認證方式

http請求報頭 authorization http響應報頭 www authenticate http認證 基於 質詢 回應 challenge response 的認證模式。基本認證 basic authentication http1.0提出的認證方法 客戶端對於每乙個realm,通過提供使...

http認證方式

http請求報頭 authorization http響應報頭 www authenticate http認證基於 質詢 回應 challenge response 的認證模式。基本認證 basic authentication http1.0提出的認證方法 客戶端對於每乙個realm,通過提供使用...

HTTP認證方式

http請求報頭 authorization http響應報頭 www authenticate http認證基於 質詢 回應 challenge response 的認證模式。基本認證 basic authentication http1.0提出的認證方法 客戶端對於每乙個realm,通過提供使用...