我想大声告诉你2017-05-19 10:27:57
登入狀態其實沒有所謂的「狀態」。因為http本身就是沒有狀態的。所以客戶端每次向伺服器端發起請求,伺服器端都要認證。
第一次:使用者提供使用者名稱和密碼認證,伺服器端透過"使用者名稱+密碼"對使用者進行認證。通過後會伺服器會產生一個認證標識。伺服器端會保存這個認證標識,並且把認證標識回應給客戶端,客戶端也要保存這個認證標識。
第二次到第n次:客戶端代理使用者以已儲存的認證標識向伺服器發起請求,伺服器端透過"認證標識"對使用者進行認證。
至於認證標識保存在客戶端的cookie裡還是localstorage,使用session機制還是自訂的token機制。都只是一個具體的實現方案。
如果是使用瀏覽器,通常cookie+session。如果是接口,例如app,通常自訂一個token機制。
為什麼要這麼做呢?因為每個請求都讓用戶輸用戶名和密碼的話,用戶會瘋。
所以客戶代理(瀏覽器),代替使用者。認證標識代替使用者名稱和密碼。
各種技術實現方案無非就是出於安全和效率考慮的
本質上,和使用者每次輸使用者名稱和密碼沒什麼區別