登陸態之瀏覽器與服務器交互

怎麼纔算登陸態呢,接下來咱們看看瀏覽器和服務器是怎麼交互的~~~

1、瀏覽器

1.用戶名、密碼非空以及格式的校驗

通常咱們要求用戶在設置密碼的時候,得包括大小寫字母、數字、或者特殊的字符,從而提升密碼的複雜度,不容易被破譯。數據庫

目的:後端

  • 進行提早校驗是爲了減小向服務器發送非必要的請求,從而減小服務器的壓力。瀏覽器

  • 防止非正經常使用戶進行惡意攻擊服務器的代碼,須要咱們作一層安全的優化。緩存

2.向服務器發送登陸請求

1.MD5加密 全部的信息在傳輸的過程都是明文傳輸,因此對有些比較敏感的數據須要進行加密。安全

  • md5加密屬於不可逆轉加密,也是作安全優化的第一步,通常在服務器端會作二次加密,以防被攻破。

2.獲取用戶名和密碼後,經過post請求,把信息發送給服務器。服務器

咱們對比一下POST和GET請求之間的區別:markdown

  • 傳遞請求信息的方式不一樣: POST請求經過設置請求主體傳遞給服務器 ,而get請求經過問號傳參來傳遞給服務器
  • 傳遞請求信息的大小不一樣: GET問號傳參是基於URL來傳遞,因爲不一樣的瀏覽器,對URL的長度限制也不一樣,因此GET相對傳遞給服務器的信息較少
  • 從緩存角度: GET會產生緩存(在請求相同的URL,瀏覽器不作處理,會從緩存中拿數據),因此通常要去掉緩存(經過HASH)以防先後端在必定時間內不一致
  • 從安全角度: POST請求較安全,get請求有可能存在安全隱患(URL劫持技術)

3.服務器返回信息

服務器把信息返回給客戶端的時候,會把SID基於響應頭Set-Cookie傳遞給客戶端。瀏覽器會自動將服務器返回的SID種植在當前cookie中,此cookie不能被修改,過時時間和服務器的SESSION保存一致。以便再次請求攜帶該標識。 cookie

  • cookie相似瀏覽器和服務器之間的郵遞員,經過cookie進行頻繁的通訊。
  • 每次瀏覽器和服務器通訊都會把cookie攜帶過去
  • 種植的cookie有過時時間

對比一下cookie和Webstorage之間的區別session

  • 大小限制: 通常瀏覽器容許一個源下cookie最多存儲8kB(1024*8B),而localStorage容許存儲最大的長度限制爲5MB(5*102*1024B)一個字母就是一個字節,一箇中文漢字佔2字節
  • 兼容性: cookie兼容全部的瀏覽器,而localStorage是H5新增的,不兼容IE低版本瀏覽器
  • 穩定性: cookie有過時時間,除此以外通常等不到過時就會被用戶清除,電腦上用的一下殺毒或者電腦管家等都會把cookie清除,這些操做不會影響到localStorage。
  • 在用戶開啓無痕瀏覽或者隱私模式,此時沒法種植cookie,可是是能夠設置localStorage的信息ctrl+shift+n

  • 活動能力: 瀏覽器中的cookie老是和服務器中的session之間相互傳遞信息,而localStorage只服務於瀏覽器。

4.退出登陸作校驗

當因爲某種緣由退出登陸的時候,瀏覽器會再次向服務器發送請求,告知退出登陸,服務器會把以前在SESSION中的SID和用戶的信息清除掉,瀏覽器並彈出登陸頁面。登陸態消失。瀏覽器和服務器通訊結束。post

2、服務器

1.服務器接收請求

瀏覽器經過發送post請求,在請求主體中攜帶用戶名和密碼,發送給服務器,從而服務器校驗該用戶在以前是否註冊過。

2.服務器作響應的處理

把獲取到的信息到數據庫中進行查找匹配,看是否有符合條件的數據,做相應的處理,並返回給客戶端瀏覽器。

  • 若是登陸成功,記錄登陸態,在服務器端設置SESSION/ERDIS,在SESSION中存儲登陸用戶的基本信息。
    • 服務器一旦設置SESSION,會建立一個和當前客戶端的惟一鏈接標識SID.
    • 在服務器把信息返回給客戶端的時候,會把SID基於響應頭Set-Cookie傳遞給客戶端。

  • 若是登陸失敗,將信息返回給客戶端,咱們給予處理,作註冊提醒。

3、頁面切換以及再次登陸

1.經過校驗登陸態,呈現客戶端的登陸態以及其餘頁面信息

有倆種校驗方式,來驗證是否爲該用戶。

  • 客戶端本地存儲cookie

第一次登陸成功後,在本地瀏覽器的cookie存儲了用戶登陸的基本信息和登陸態的標識。 關閉當前瀏覽器又再次進入該項目index頁面的時候或者進入到當前項目其餘頁面的時候,首先查看一下本地是否存在這個標識,若是存在則標識登陸了,直接返回給相應的信息

  • 服務器存儲登陸態的信息

客戶端再次向服務器發送請求的時候,瀏覽器會把cookie中的sid經過請求頭中SID傳遞給服務器,服務器接收到SID後 再次到SESSION中查找匹配。在cookie被清除的時候,登陸態都會失敗,須要從新登陸。再次創建當前瀏覽器和服務器之間的惟一標識SID。 客戶端想知道該用戶是否登陸,須要向服務器發送請求進行校驗。只要不是用戶正常退出登陸和其餘方式的退出,在瀏覽器本地cookie和服務器SESSION中SID的過時時間尚未過,就會自動登陸。

2.再次登陸

退出後再次登陸,會再次開啓瀏覽器和服務器之間的通訊。

總結

登陸態:所謂登陸態就是瀏覽器和服務器之間通訊的惟一標識。

相關文章
相關標籤/搜索