溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP中Session和Cookie的探究

發(fā)布時間:2020-06-29 09:00:23 來源:網(wǎng)絡(luò) 閱讀:622 作者:思夢教育 欄目:web開發(fā)

一、Session

(1)Session的由來以及介紹

Session:在計算機中,尤其是在網(wǎng)絡(luò)應(yīng)用中,稱為“會話控制”,生存時間為用戶在瀏覽某個網(wǎng)站時,從進入網(wǎng)站到關(guān)閉這個網(wǎng)站所經(jīng)過的這段時間,也就是用戶瀏覽這個網(wǎng)站所花費的時間。

由于Http是一種無狀態(tài)的的協(xié)議,只負責(zé)請求服務(wù)器,當(dāng)它在服務(wù)器相應(yīng)之后,就與瀏覽器失去了聯(lián)系。不能保存用戶的個人信息,就像一個商場和一個自動售貨機或者普通的人之間的關(guān)系,所以為了彌補這個缺點Session才應(yīng)聲而出,Session需要在4.1版本以上

(2)Session的機制

session機制采用的是在服務(wù)器端保持狀態(tài)的方案,并且有自己對應(yīng)的唯一標(biāo)識session_id,區(qū)分不同用戶之前的信息

就比如:我們?nèi)ヒ患也蛷d吃飯,我們有一張會員卡,上面有我的個人信息,以及有效時間,當(dāng)我每次來的時候餐廳都能找到我的個人信息

(3)session的工作原理

1>當(dāng)一個session第一次被啟用時,一個唯一的標(biāo)識被存儲于本地的cookie中。

2>首先使用session_start()函數(shù),PHP從session倉庫中加載已經(jīng)存儲的session變量。

3>當(dāng)執(zhí)行PHP腳本時,通過使用session_register()函數(shù)注冊session變量。

4>當(dāng)PHP腳本執(zhí)行結(jié)束時,未被銷毀的session變量會被自動保存在本地一定路徑下的session庫中,這個路徑可以通過php.ini文件中的session.save_path指定,下次瀏覽網(wǎng)頁時可以加載使用。

保存的文件:

PHP中Session和Cookie的探究

詳細信息:

PHP中Session和Cookie的探究

(4)Session項目實戰(zhàn)中都有哪些應(yīng)用

1>記錄用戶登陸信息,全局使用

2>制作驗證碼,驗證對比操作

3>將session保存到數(shù)據(jù)庫可以實現(xiàn):a.控制一個帳號只能一個人登錄

(5)Session的優(yōu)缺點

1>session的優(yōu)點:唯一性、方便調(diào)用、不會過多占用資源,是存儲在服務(wù)器的一組臨時數(shù)據(jù)。一般情況下,我們在做用戶登錄時,會將用戶數(shù)據(jù)存入session。這樣,在任何頁面都可以方便調(diào)用,而且 每個客戶端會產(chǎn)生唯一的session_id,不會混肴。并且在關(guān)閉瀏覽器后,服務(wù)器會有session回收機制,自動刪除過期session

2>缺點:在客戶端是以cookie方式保存的,禁用cookie就沒用了。

(6)Session和Cookie的聯(lián)系以及區(qū)別

1>聯(lián)系:Session在客戶端也需要保存一個標(biāo)識,所以就要借助Cookie,session是通過cookie來工作的session和cookie之間是通過$_COOKIE['PHPSESSID']來聯(lián)系的,通過$_COOKIE['PHPSESSID']可以知道session的id,從而獲取到其他的信息。

2>區(qū)別:Cookie機制采用的是在客戶端(瀏覽器)保持狀態(tài)的方案,而session機制采用的是在服務(wù)器端保持狀態(tài)的方案

(7)Session的使用

sesstion_start(); // 首先開啟session

$_SESSION['user'] = 'username'; // 把username存在里面

echo $_SESSION['user']; // 直接輸出 username

session_destroy(); // 銷毀session

二、Cookie

(1)Cookie的由來以及介紹

Cookie是作為互聯(lián)網(wǎng)的產(chǎn)物隨之產(chǎn)生的,也是為了保存用戶的一些基本的信息,也可以理解為服務(wù)器在你計算機上暫時保存的一些信息,下次來的時候先看看這些信息資料,然后直接加載這些資料,送出特定的信息。

(2)Cookie的機制

Cookie是Session的機制原理類似,都是會為每一個用戶生成一個特定的值,這次是在客戶端保存,當(dāng)我們打開cookie里面保存了我們個人信息的網(wǎng)站,他會將我們的個人信息提交到服務(wù)器,之后請求服務(wù)器相應(yīng)資料信息

(3)Cookie的原理

當(dāng)你訪問一個網(wǎng)站的時候,可以將服務(wù)器的一些少量的數(shù)據(jù)保存到硬盤上,比如說用戶名,id等,等你下次訪問的時候,服務(wù)器會首先尋找這個文件然后讀取你的相關(guān)信息,這樣可以讓你在不輸入用戶名密碼的情況下直接登陸網(wǎng)站

(4)Cookie在項目實戰(zhàn)中都有哪些應(yīng)用

1>記住用戶名密碼

(5)Cookie的優(yōu)缺點

1>優(yōu)點:a.不需要服務(wù)器資源空間 b.持久時間更長

2>缺點:a.客戶端大小受限制 b.用戶禁用Cookie那么就廢用了 c.不安全

(6)Cookie和Session的區(qū)別和聯(lián)系

1>聯(lián)系:Cookie可以在客戶端為session保存唯一標(biāo)識

2>區(qū)別:Cookie機制采用的是在客戶端(瀏覽器)保持狀態(tài)的方案,而session機制采用的是在服務(wù)器端保持狀態(tài)的方案

(7)Cookie的使用

1>創(chuàng)建和更新:setCookie($cookieName,$value,time()+秒數(shù));

實例:setcookie("UserName","imooc",time()+2*7*24*3600);

取值:$uName=$_COOKIE['UserName'];

2>刪除Cookie

setcookie($cookieName,value,time()-秒數(shù));

//或者

setcookie($cookiename, '');

//或者

setcookie($cookiename, NULL);

實例:setcookie("UserName","imooc",time()-3600);


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI