天天看點

PHP中Session和Cookie的探究

一、<b>Session</b>

<b>(1)Session的由來以及介紹</b>

Session:在計算機中,尤其是在網絡應用中,稱為“會話控制”,生存時間為使用者在浏覽某個網站時,從進入網站到關閉這個網站所經過的這段時間,也就是使用者浏覽這個網站所花費的時間。

由于Http是一種無狀态的的協定,隻負責請求伺服器,當它在伺服器相應之後,就與浏覽器失去了聯系。不能儲存使用者的個人資訊,就像一個商場和一個自動售貨機或者普通的人之間的關系,是以為了彌補這個缺點Session才應聲而出,Session需要在4.1版本以上

(2)<b>Session的機制</b>

session機制采用的是在伺服器端保持狀态的方案,并且有自己對應的唯一辨別session_id,區分不同使用者之前的資訊

就比如:我們去一家餐廳吃飯,我們有一張會員卡,上面有我的個人資訊,以及有效時間,當我每次來的時候餐廳都能找到我的個人資訊

(3)session的工作原理

1&gt;當一個session第一次被啟用時,一個唯一的辨別被存儲于本地的cookie中。

2&gt;首先使用session_start()函數,PHP從session倉庫中加載已經存儲的session變量。

3&gt;當執行PHP腳本時,通過使用session_register()函數注冊session變量。

4&gt;當PHP腳本執行結束時,未被銷毀的session變量會被自動儲存在本地一定路徑下的session庫中,這個路徑可以通過php.ini檔案中的session.save_path指定,下次浏覽網頁時可以加載使用。

儲存的檔案:

詳細資訊:

(4)<b>Session項目實戰中都有哪些應用</b>

1&gt;記錄使用者登陸資訊,全局使用

2&gt;制作驗證碼,驗證對比操作

3&gt;将session儲存到資料庫可以實作:a.控制一個帳号隻能一個人登入

<b>(5)Session的優缺點</b>

1&gt;session的優點:唯一性、友善調用、不會過多占用資源,是存儲在伺服器的一組臨時資料。一般情況下,我們在做使用者登入時,會将使用者資料存入session。這樣,在任何頁面都可以友善調用,而且 每個用戶端會産生唯一的session_id,不會混肴。并且在關閉浏覽器後,伺服器會有session回收機制,自動删除過期session

2&gt;缺點:在用戶端是以cookie方式儲存的,禁用cookie就沒用了。

(6)<b>Session和Cookie的聯系以及差別</b>

1&gt;聯系:Session在用戶端也需要儲存一個辨別,是以就要借助Cookie,session是通過cookie來工作的session和cookie之間是通過$_COOKIE['PHPSESSID']來聯系的,通過$_COOKIE['PHPSESSID']可以知道session的id,進而擷取到其他的資訊。

2&gt;差別:Cookie機制采用的是在用戶端(浏覽器)保持狀态的方案,而session機制采用的是在伺服器端保持狀态的方案

(7)<b>Session的使用</b>

sesstion_start(); // 首先開啟session

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

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

session_destroy(); // 銷毀session

二、<b>Cookie</b>

(1)<b>Cookie的由來以及介紹</b>

Cookie是作為網際網路的産物随之産生的,也是為了儲存使用者的一些基本的資訊,也可以了解為伺服器在你計算機上暫時儲存的一些資訊,下次來的時候先看看這些資訊資料,然後直接加載這些資料,送出特定的資訊。

(2)<b>Cookie的機制</b>

Cookie是Session的機制原理類似,都是會為每一個使用者生成一個特定的值,這次是在用戶端儲存,當我們打開cookie裡面儲存了我們個人資訊的網站,他會将我們的個人資訊送出到伺服器,之後請求伺服器相應資料資訊

(3)<b>Cookie的原理</b>

當你通路一個網站的時候,可以将伺服器的一些少量的資料儲存到硬碟上,比如說使用者名,id等,等你下次通路的時候,伺服器會首先尋找這個檔案然後讀取你的相關資訊,這樣可以讓你在不輸入使用者名密碼的情況下直接登陸網站

(4)<b>Cookie在項目實戰中都有哪些應用</b>

1&gt;記住使用者名密碼

(5)<b>Cookie的優缺點</b>

1&gt;優點:a.不需要伺服器資源空間 b.持久時間更長

2&gt;缺點:a.用戶端大小受限制 b.使用者禁用Cookie那麼就廢用了 c.不安全

(6)<b>Cookie和Session的差別和聯系</b>

1&gt;聯系:Cookie可以在用戶端為session儲存唯一辨別

(7)<b>Cookie的使用</b>

1&gt;建立和更新:setCookie($cookieName,$value,time()+秒數);

執行個體:setcookie("UserName","imooc",time()+2*7*24*3600);

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

2&gt;删除Cookie

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

//或者

setcookie($cookiename, '');

setcookie($cookiename, NULL);

執行個體:setcookie("UserName","imooc",time()-3600);