閱讀目錄
什麼是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中就可以了。
linux下的curl
附: http協議 系列教程, (**中, 敬請期待)
http協議 (一) http協議詳解
http協議 (二) 基本認證
http協議 (三) 壓縮
http協議 (四) 快取
http協議 (五) **
http協議 (六) 狀態碼詳解
http協議 (七) cookie
HTTP協議 二 基本認證
閱讀目錄 什麼是http基本認證 http基本認證的過程 http基本認證的優點 每次都要進行認證 http基本認證和https一起使用就很安全 http oauth認證 其他認證 客戶端的使用 桌面應用程式也通過http協議跟web伺服器互動,桌面應用程式一般不會使用cookie,而是把 使用者名...
HTTP協議 二 基本認證
閱讀目錄 什麼是http基本認證 http基本認證的過程 http基本認證的優點 每次都要進行認證 http基本認證和https一起使用就很安全 http oauth認證 其他認證 客戶端的使用 桌面應用程式也通過http協議跟web伺服器互動,桌面應用程式一般不會使用cookie,而是把 使用者名...
HTTP協議 二 基本認證
閱讀目錄 什麼是http基本認證 http基本認證的過程 http基本認證的優點 每次都要進行認證 http基本認證和https一起使用就很安全 http oauth認證 其他認證 客戶端的使用 桌面應用程式也通過http協議跟web伺服器互動,桌面應用程式一般不會使用cookie,而是把 使用者名...