HTTP協議 (二) --基本認證

來源:互聯網
上載者:User

標籤:方便   html   http   認證   web服務   username   優點   包含   返回   

HTTP協議 (二) 基本認證

http協議是無狀態的, 瀏覽器和web伺服器之間可以通過cookie來身份識別。 傳統型應用程式(比如新浪案頭用戶端, skydrive用戶端)跟Web伺服器之間是如何身份識別呢?

 

什麼是HTTP基本認證

傳統型應用程式也通過HTTP協議跟Web伺服器互動, 傳統型應用程式一般不會使用cookie, 而是把 "使用者名稱+冒號+密碼"用BASE64編碼的字串放在http request 中的header Authorization中發送給服務端, 這種方式叫HTTP基本認證(Basic Authentication)

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

 

 

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

 

 

HTTP基本認證的過程

第一步:  用戶端發送http request 給伺服器, 

第二步:  因為request中沒有包含Authorization header,  伺服器會返回一個401 Unauthozied 給用戶端,並且在Response 的 header "WWW-Authenticate" 中添加資訊。

 

 

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

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

 

 

使用Fiddler Inspectors 下的Auth 選項卡,可以很方便的看到使用者名稱和密碼:

 

 

HTTP基本認證的優點

HTTP基本認證,簡單明了。Rest API 就是經常使用基本認證的

 

每次都要進行認證

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

 

HTTP基本認證和HTTPS

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

 

HTTP OAuth認證

OAuth 對於Http來說,就是放在Authorization header中的不是使用者名稱密碼, 而是一個token.

微軟的Skydrive 就是使用這樣的方式, 如

 

 

 

其他認證

除了基本認證(Basic Authentication), 還有摘要認證 digest authentication, WSSE(WS-Security)認證

 

 

用戶端的使用

用戶端如果要跟“使用基本認證的網站”互動。 非常很簡單,把使用者名稱密碼 加在Authorization header中就可以了。

 

C#

string url = "https://testsite";

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

NetworkCredential nc = new NetworkCredential("username", "password");

HTTP協議 (二) --基本認證

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.