PHP中Session和Cookie的探究
一、Session
(1)Session的由來以及介紹
Session:在計算機中,尤其是在網路應用中,稱為“會話控制”,生存時間為使用者在瀏覽某個網站時,從進入網站到關閉這個網站所經過的這段時間,也就是使用者瀏覽這個網站所花費的時間。
由於Http是一種無狀態的的協議,只負責請求伺服器,當它在伺服器相應之後,就與瀏覽器失去了聯絡。不能儲存使用者的個人資訊,就像一個商場和一個自動售貨機或者普通的人之間的關係,所以為了彌補這個缺點Session才應聲而出,Session需要在4.1版本以上
(2)Session的機制
session機制採用的是在伺服器端保持狀態的方案,並且有自己對應的唯一標識session_id,區分不同使用者之前的資訊
就比如:我們去一家餐廳吃飯,我們有一張會員卡,上面有我的個人資訊,以及有效時間,當我每次來的時候餐廳都能找到我的個人資訊
(3)session的工作原理
1>當一個session第一次被啟用時,一個唯一的標識被儲存於本地的cookie中。
2>首先使用session_start()函式,PHP從session倉庫中載入已經儲存的session變數。
3>當執行PHP指令碼時,通過使用session_register()函式註冊session變數。
4>當PHP指令碼執行結束時,未被銷燬的session變數會被自動儲存在本地一定路徑下的session庫中,這個路徑可以通過php.ini檔案中的session.save_path指定,下次瀏覽網頁時可以載入使用。
儲存的檔案:
詳細資訊:
(4)Session專案實戰中都有哪些應用
1>記錄使用者登陸資訊,全域性使用
2>製作驗證碼,驗證對比操作
3>將session儲存到資料庫可以實現:a.控制一個帳號只能一個人登入
(5)Session的優缺點
1>session的優點:唯一性、方便呼叫、不會過多佔用資源,是儲存在伺服器的一組臨時資料。一般情況下,我們在做使用者登入時,會將使用者資料存入session。這樣,在任何頁面都可以方便呼叫,而且 每個客戶端會產生唯一的session_id,不會混餚。並且在關閉瀏覽器後,伺服器會有session回收機制,自動刪除過期session
2>缺點:在客戶端是以cookie方式儲存的,禁用cookie就沒用了。
(6)Session和Cookie的聯絡以及區別
1>聯絡:Session在客戶端也需要儲存一個標識,所以就要藉助Cookie,session是通過cookie來工作的session和cookie之間是通過$_COOKIE[`PHPSESSID`]來聯絡的,通過$_COOKIE[`PHPSESSID`]可以知道session的id,從而獲取到其他的資訊。
2>區別:Cookie機制採用的是在客戶端(瀏覽器)保持狀態的方案,而session機制採用的是在伺服器端保持狀態的方案
(7)Session的使用
sesstion_start(); // 首先開啟session
$_SESSION[`user`] = `username`; // 把username存在裡面
echo $_SESSION[`user`]; // 直接輸出 username
session_destroy(); // 銷燬session
二、Cookie
(1)Cookie的由來以及介紹
Cookie是作為網際網路的產物隨之產生的,也是為了儲存使用者的一些基本的資訊,也可以理解為伺服器在你計算機上暫時儲存的一些資訊,下次來的時候先看看這些資訊資料,然後直接載入這些資料,送出特定的資訊。
(2)Cookie的機制
Cookie是Session的機制原理類似,都是會為每一個使用者生成一個特定的值,這次是在客戶端儲存,當我們開啟cookie裡面儲存了我們個人資訊的網站,他會將我們的個人資訊提交到伺服器,之後請求伺服器相應資料資訊
(3)Cookie的原理
當你訪問一個網站的時候,可以將伺服器的一些少量的資料儲存到硬碟上,比如說使用者名稱,id等,等你下次訪問的時候,伺服器會首先尋找這個檔案然後讀取你的相關資訊,這樣可以讓你在不輸入使用者名稱密碼的情況下直接登陸網站
(4)Cookie在專案實戰中都有哪些應用
1>記住使用者名稱密碼
(5)Cookie的優缺點
1>優點:a.不需要伺服器資源空間 b.持久時間更長
2>缺點:a.客戶端大小受限制 b.使用者禁用Cookie那麼就廢用了 c.不安全
(6)Cookie和Session的區別和聯絡
1>聯絡:Cookie可以在客戶端為session儲存唯一標識
2>區別:Cookie機制採用的是在客戶端(瀏覽器)保持狀態的方案,而session機制採用的是在伺服器端保持狀態的方案
(7)Cookie的使用
1>建立和更新:setCookie($cookieName,$value,time()+秒數);
例項:setcookie(“UserName”,”imooc”,time()+2*7*24*3600);
取值:$uName=$_COOKIE[`UserName`];
2>刪除Cookie
setcookie($cookieName,value,time()-秒數);
//或者
setcookie($cookiename, “);
//或者
setcookie($cookiename, NULL);
例項:setcookie(“UserName”,”imooc”,time()-3600);
相關文章
- PHP中session和cookie的區別薦PHPSessionCookie
- Tomcat 中的 Session 和 CookieTomcatSessionCookie
- flask框架中的cookie和sessionFlask框架CookieSession
- http中的cookie和session概念HTTPCookieSession
- cookie 和 sessionCookieSession
- session和cookieSessionCookie
- Cookie和SessionCookieSession
- 第74節:Java中的Cookie和SessionJavaCookieSession
- http中session和cookie的區別和關係HTTPSessionCookie
- 【Javaweb】Cookie和SessionJavaWebCookieSession
- cookie和session的區別CookieSession
- 對session和cookie的理解SessionCookie
- cookie和session的詳解CookieSession
- PHP 不得不提的 session 與 cookiePHPSessionCookie
- session和cookie關係SessionCookie
- 關於Session和CookieSessionCookie
- laravel操作session和cookieLaravelSessionCookie
- 撩下Cookie和SessionCookieSession
- Session和Cookie機制SessionCookie
- Session 和 Cookie 區別SessionCookie
- Cookie和Session機制CookieSession
- [session和cookie總結]SessionCookie
- WEB開發中的cookie與sessionWebCookieSession
- 深入分析Session和CookieSessionCookie
- localStorage 與 sessionStorage / cookie 和 sessionSessionCookie
- 聊一聊session和cookieSessionCookie
- nodejs操作session和cookieNodeJSSessionCookie
- Java學習--Cookie 和sessionJavaCookieSession
- 理解Cookie和Session機制CookieSession
- Django框架之Cookie和SessionDjango框架CookieSession
- cookie 和session 的區別詳解CookieSession
- 不清不楚的Session和CookieSessionCookie
- Java Web之Cookie和Session的理解JavaWebCookieSession
- Cookie和Session的區別詳解CookieSession
- keyclaok~keycloak存到cookie中的值和session_stateCookieSession
- cookie & sessionCookieSession
- cookie sessionCookieSession
- Cookie 和 Session 關係和區別CookieSession