從源碼當中 咱們能夠 得知,HttpServletRequest其實 實際上 並 不是一個類,它只是一個標準,一個 接口而已,它的 父類是ServletRequest。html
public interface HttpServletRequest extends ServletRequest
從閱讀源碼 當中 ,咱們 能夠 得到 以下認證信息:安全
/** * String identifier for Basic authentication. Value "BASIC" */ public static final String BASIC_AUTH = "BASIC"; /** * String identifier for Form authentication. Value "FORM" */ public static final String FORM_AUTH = "FORM"; /** * String identifier for Client Certificate authentication. Value "CLIENT_CERT" */ public static final String CLIENT_CERT_AUTH = "CLIENT_CERT"; /** * String identifier for Digest authentication. Value "DIGEST" */ public static final String DIGEST_AUTH = "DIGEST";
分別是 BASIC,FORM,CLIENT_CERT,DIGEST,那麼 這幾種不一樣的認證有什麼區別呢?服務器
下面 是一些 介紹 :oracle
Basic:這種 狀況下 ,須要 用戶名和密碼 進行認證,用用戶 輸入的用戶名 和密碼 和 服務器上 的數據 中 的當前用戶的用戶名和 密碼 進行對比 。具體的流程以下圖所示 :ide
這種 認證 方式並非安全的,客戶端發送的用戶名 和密碼 是 Base64形式 加密的文本,這種狀況的 用戶名和 密碼 是會被暴露 出來的,若是 有 人可以截獲用戶名和密碼 ,這是 很 容易被解碼的,固然 若是 使用 的是 SSL,HTTPS等 策略的話,會減小這種風險的發生率。加密