1

下圖描述了基本的HTTP認證。客戶請求/family資源並要求標識自己。它現在可以訪問/family。然後,客戶還要求在家庭領域的資源/family/photos/kids後續請求的基本HTTP認證

客戶端已經爲/family資源標識自己,但不是/family/photos/kids。它們處於同一個領域,但服務器不知道同一個客戶端發出請求。還是呢?服務器如何知道這個特定的客戶端也被允許在後續請求中訪問/family/photos/kids?密碼和用戶名是否在用戶通過驗證後發送給每個請求?客戶是否通過彈出窗口詢問他/她做出的每一個請求?首次認證時cookie是否設置?

enter image description here

回答

1

基本身份驗證要求由客戶端發送的報頭。沒有cookie或服務器會話

當客戶端請求的資源,將授權頭

GET /family 
Authorization: Basic token 

其中token都是Base64(用戶名:密碼)。用戶名後跟':',密碼以64爲基礎編碼

如果您要求您的瀏覽器提供受保護的資源,例如GET請求,並且您沒有提供標題,瀏覽器會顯示該病毒表單並記住它後續請求在同一域

+0

謝謝你停止。那麼授權標頭以及base64編碼的憑證會在所有後續請求中發送到整個域還是僅僅/ family?它會發送/家人/照片/孩子嗎?代理授權是否也會發生同樣的情況? – sanjihan

+0

客戶端必須在每個請求中發送標題。如果您使用瀏覽器向用戶詢問憑據,則會將其用於相同的域。代理(如Apache)可用於管理授權 – pedrofb