會話控制技術session 和cookie

HTTP是無狀態協議,沒有內建機制維護兩個事物之間的狀態,同一個用戶在請求同一個頁面兩次的時候,HTTP協議不會認爲這兩次請求都認爲是同一用戶的請求,會當作兩次請求的獨立。會把兩次請求隔離開,會認爲兩次請求是不一樣的兩我的進行請求或訪問。若是用戶進行了登陸操做,再次請求頁面,HTTP協議不會認爲該用戶以前進行過登陸,沒有辦法保持以前的用戶登陸狀態,因此不能再不一樣頁面之間進行用戶登陸操做的跟蹤狀態和會話的保持。mysql

會話控制就是爲了解決跟蹤同一用戶的狀態。容許服務器跟蹤同一客戶端作出的連續請求。保持用戶的狀態,從而保持用戶的登陸狀態。redis

GET參數進行傳遞  信息不安全,參數丟失sql

cookie 是一種由服務器發送給客戶端的片斷信息,存儲在客戶端瀏覽器的內存或硬盤當中的技術。瀏覽器

setcookie(key,value,expire,path,domain,sercure);安全

$_COOKIE 讀取數據服務器

setcookie('a[b]','val');cookie

setcookie('a[b]','',time()-1000);session

cookie優勢 存儲在客戶端,不會佔用服務器的資源。效率高。 缺點:存儲在客戶端不安全,不建議將一些敏感、重要的信息存儲在客戶端,用戶禁止cookie 將不能存儲cookie值。dom

session 將用戶的信息存儲在服務器中,用戶不能禁用session的使用。基於cookie的存儲,session_id 存儲在cookie中。cookie被禁用能夠用URL參數進行傳遞,保存session的狀態。blog

用戶讀取session ,會將cookie中存儲的session_id,在服務器中找到對應的session文件,而後讀取數據。

session_start();

$_SESSION;

$_SESSION = []; 刪除session數據

session_destroy();刪除session文件

session.auto_start 是否自動開始session

session.cookie_domain 存儲session的cookie的有效域名

session.cookie_lifetime

session.cookie_path

session.name     默認PHPSESSION

session.save_path 存儲路徑

session.use_cookies 是否用cookie存儲session_id

session.use_trans_sid 是否用傳遞的方式傳遞session_id

session.save_handler 句柄

 

session.gc_probability  =1 垃圾回收機制

session.gz_divisor =100

session.gc_maxlifetime  =1440 最大生命週期S

每100次會清理1次 超過1440秒

 

session 安全,存儲在服務器端 佔用資源 

session_name  session_id    SID常量

session_set_save_handler() 存儲方式的改變 能夠存儲在mysql  redis   memcache 中

 

相關文章
相關標籤/搜索