久久96国产精品久久久-久久发布国产伦子伦精品-久久精品国产精品青草-久久天天躁夜夜躁狠狠85麻豆

技術員聯盟提供win764位系統下載,win10,win7,xp,裝機純凈版,64位旗艦版,綠色軟件,免費軟件下載基地!

當前位置:主頁 > 教程 > 硬件教程 >

HTTP協議是什么?HTTP協議認證介紹

來源:技術員聯盟┆發布時間:2018-11-08 00:23┆點擊:

  什么是HTTP基本認證

  桌面應用程序也通過HTTP協議跟Web服務器交互, 桌面應用程序一般不會使用cookie, 而是把 "用戶名+冒號+密碼"用BASE64算法加密后的字符串放在http request 中的header Authorization中發送給服務端, 這種方式叫HTTP基本認證(Basic Authentication)

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

HTTP協議是什么?HTTP協議認證介紹 三聯

  假如用戶名密碼錯誤的話, 服務器會返回401 如下圖

HTTP協議是什么?HTTP協議認證介紹

  HTTP基本認證的過程

  第一步: 客戶端發送http request 給服務器,

  第二步: 因為request中沒有包含Authorization header, 服務器會返回一個401 Unauthozied給客戶端,并且在Response的 header "WWW-Authenticate" 中添加信息。

HTTP協議是什么?HTTP協議認證介紹

  第三步:客戶端把用戶名和密碼用BASE64加密后,放在Authorization header中發送給服務器, 認證成功。

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

HTTP協議是什么?HTTP協議認證介紹

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

HTTP協議是什么?HTTP協議認證介紹

  HTTP基本認證的優點

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

  每次都要進行認證

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

  HTTP基本認證和HTTPS

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

  HTTP OAuth認證

  OAuth對于Http來說,就是放在Authorization header中的不是用戶名密碼, 而是一個token。

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

HTTP協議是什么?HTTP協議認證介紹

  其他認證

  除了基本認證(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"); req.Credentials = nc;

  Linux下的curl

curl -u username:password https://testsite/