在Web 技術發展歷史上,雖然 Cookie 技術的出現是一次重大的變革,但 Cookie 實在客戶端的計算機中保存資料 ,所以引起了一個爭議:用戶有權阻止 Cookie 使用,使 Web 服務器無法通過 Cookie 來跟蹤用戶信息。而 Session 技術是將使用者相關的資料存放在服務器系統之下,所以使用者無法停止 Session 的使用。大理石平台維修
可以把 Cookie 比喻成第一次去商場時,商家為客戶辦理的購物會員卡,並由客戶自己保存。如果客戶下次再去商場時忘記攜帶購物卡,或者把購物卡丟失了,這樣用戶就不能再次使用會員身份來購物了。但是如果商家再為客戶辦理完會員卡之后,由商場來保存這張會員卡,用戶就不需要把卡放在自己身上了。但是商場辦理會員卡的客戶特別多,當客戶每次來商場消費時,商場怎么才能知道客戶是不是商場的會員呢? 這就要在客戶來商場辦理會員卡的時候,商場會要求保存客戶班里的會員卡的卡號,當下次客戶再來購物消費時,商場就可以通過客戶的卡號查詢到會員卡的登記消費等信息了。
Session就是這樣,在客戶端僅需要保存由服務器為用戶創建的一個 Session 標識符(相當於會員卡的卡號),稱之為
Session ID,而在服務器端(文件/數據庫中)保存 Session 變量的值 。Session ID是一個既不會重復又不容易被找到的有規律的、由32位十六進制數組成的字符串。Session ID 會保存在客戶端的 Cookie里,如果用戶阻止 Cookie 的使用,則可以將 Session ID 保存在用戶瀏覽器地址欄的 URL中。
在php配置文件中,有一組和 Session 相關的配置選項。通過對一些選項的設置,就可以對 Session 進行配置,否則將使用默認的 Session配置。
php.ini設置參考項:
1. 處理session存取的模式
session.save_handler = files
2. session檔案存放路徑
session.save_path = /tmp
3. session使用cookie的功能,啟動: 1
session.use_cookies = 1
4. session名字
session.name = PHPSESSID
5. 自動啟動;0:關;1:開啟
session.auto_start = 0
6. session使用cookie的生存期,以秒為單位
session.cookie_lifetime = 0
7. cookie有效作用域名
session.cookie_domain = "a.com"
8. 概率是 session.gc_probability/session.gc_divisor 結果 1/1000;不建議設置過小,因為session的垃圾回收,是需要檢查每個文件是否過期的
session.gc_probability = 1
session.gc_divisor = 1000
9. 過期時間 默認24分鍾https://www.frlh168.com/dlsbaike/788.html
session.gc_maxlifetime = 1440