會話跟蹤是Web程序中常用的技術,用來跟蹤用戶的整個會話。常用的會話跟蹤技術是Cookie與Session。
Cookie通過在客戶端記錄信息確定用戶身份,常用於登陸時的記住我選項,只要不清除cookie,那么用戶以后重啟電腦也不用在輸入用戶名和密碼進行登陸。
Session通過在服務器端記錄信息確定用戶身份,與Cookie不同,Session常用於臨時會話,關閉瀏覽器后就失效了,需要再次登陸。
如下,我們創建一個唯一的隨機數(用於每個用戶的唯一標識保證),名字叫auth_token,所以下面查看會話保持時間的時候我們可以看到這個字段:
這個字段是session那么表示是唯一標識保存在服務器----關閉瀏覽器就清除的臨時會話,關閉瀏覽器之后就需要重新登陸;
若是具體日期比如2036那么表示cookie保存在客戶端,直到2036年才需要重新登錄;
如下:
不選記住我,那么就是session,也就是臨時會話,保存在服務器,退出瀏覽器后需要重新登陸
選擇記住我,那么就是保存在客戶端也就是瀏覽器,可以看到過期時間
來登錄一下試試,如果不勾選 " remember me ",如下登陸可以看到auth_token這個用戶登錄的唯一標識的Expires(也就是過期時間)是session,所以退出瀏覽器后就清除登錄。
而勾選了" remember me "之后,如下過期時間是2036年,因為rails的cookies機制默認過期是20年后;也就是只要我們不清除cookie那么我們訪問該網站默認就登錄了,20年間我們不需要再次登錄。