cookie簡述

當一個系統有多用戶時,或是淘寶這些多用戶的,登錄之後,發一個請求時,我們怎麼知道是哪個用戶發的,加入購物車時,怎麼知道是哪個用戶加的?所以就會引入cookie。把用戶登錄後的一些信息放進cookie裏面,這個信息能唯一識別是哪個用戶的。然後每次客戶端發請求時都會帶上這個cookie的,然後我們判斷cookie裏的信息就會知道是哪個用戶了。

cookie是請求頭裏面的一個屬性吧,能存數據的。下面就是我們請求頭裏面的cookie

afc_session_id和afc_session_key是我們自己設置的,用來識別一些信息,比如用戶啥的。

比如打開登錄界面,請求驗證碼的時候,我們就在請求驗證碼response那裏設置cookie的afc_session_id的值,然後也在redis裏保存認證碼的值,key是afc_session_id的值,values是驗證碼的值。當你登錄時會請求登錄接口也會附上cookie的(瀏覽器請求時都會附上cookie),我們會從cookie裏拿到afc_session_id的值,然後根據該值去拿驗證碼。這樣做可以準確得拿到該驗證碼了。

然後還有就是,當我們登錄之後,我們會在cookie裏會設置afc_session_key的值,該值是識別用戶的,可以是跟userid有關聯的,反正可以根據該值找到對應的user。然後每次請求,會根據cookie來判斷是哪個用戶了。

如果我們服務器設置了cookie發給客戶端,客戶端會保存這個cookie,然後之後的每個請求都會附上這個cookie。不改變值的話,值是不會變的。所以我們登陸到退出中間afc_session_id不會變。登陸後和退出中間afc_session_key不會變。

有說一次會話,服務器會分配個sessionid給我們,判別用戶,可是當我們請求另一個服務器是,該sessionid會變,所以我們自己設置吧。上面的JSESSIONID就是吧。同一個服務不變,不同服務會變了。

然後session也和cookie一樣的原理吧。cookie是在客戶端,session是在服務端。