HTTP Basic Authentication認證


前言

大家在登錄網站的時候,大部分時候是通過一個表單提交登錄信息。

但是有時候瀏覽器會彈出一個登錄驗證的對話框,如下圖,這就是使用HTTP基本認證。


說明 HTTP Basic Authentication

在你訪問一個需要HTTP Basic Authentication的URL的時候,如果你沒有提供用戶名和密碼,服務器就會返回401,如果你直接在瀏覽器中打開,瀏覽器會提示你輸入用戶名和密碼,也就是上面的圖示。

要在發送請求的時候添加HTTP Basic Authentication認證信息到請求中,有兩種方法:  

一是在請求頭中添加Authorization:  Authorization: "Basic 用戶名和密碼的base64加密字符串"  。
二是在url中添加用戶名和密碼。

認證過程:

第一步:  客戶端發送http request 給服務器,服務器驗證該用戶是否已經登錄驗證過了,如果沒有的話,服務器會返回一個401 Unauthozied給客戶端,並且在Response 的 header "WWW-Authenticate" 中添加信息。如下圖。


 

第二步:瀏覽器在接受到401 Unauthozied后,會彈出登錄驗證的對話框。用戶輸入用戶名和密碼后,瀏覽器用BASE64編碼后,放在Authorization header中發送給服務器。如下圖:

 

 第三步: 服務器將Authorization header中的用戶名密碼取出,進行驗證, 如果驗證通過,將根據請求,發送資源給客戶端,認證結束。

  當request第一次到達服務器時,服務器沒有認證的信息,服務器會返回一個401 Unauthozied給客戶端。認證之后將認證信息放在session,以后在session有效期內就不用再認證了。

 

Http Basic Auth 原理

在HTTP協議進行通信的過程中,HTTP協議定義了基本認證過程以允許HTTP服務器對WEB瀏覽器進行用戶身份認證的方法,當一個客戶端向HTTP服務 器進行數據請求時,

如果客戶端未被認證,則HTTP服務器將通過基本認證過程對客戶端的用戶名及密碼進行驗證,以決定用戶是否合法。

客戶端在接收到HTTP服務器的身份認證要求后,會提示用戶輸入用戶名及密碼, 用戶輸入后,

客戶端將用戶名和密碼中間用“:”分隔合並,並將合並后的字符串用BASE64編碼,在每次請求數據 時,將密文附加於請求頭(Request Header)Authorization: Basic XXXXXXX中。

HTTP服務器在每次收到請求包后,根據協議取得客戶端附加的用戶信息(BASE64編碼的用戶名和密碼),解開請求包,對用戶名及密碼進行驗證,

如果用 戶名及密碼正確,則根據客戶端請求,返回客戶端所需要的數據;否則,返回錯誤代碼或重新要求客戶端提供用戶名及密碼。

 

參考文檔:https://blog.csdn.net/qq_15783243/article/details/78586699

https://www.cnblogs.com/xiaocandou/p/7991927.html

https://blog.csdn.net/youzhouliu/article/details/52048393

https://blog.csdn.net/jingzhunbiancheng/article/details/80959492

 



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM