首頁 >後端開發 >PHP問題 >php中session和cookie的差別是什麼?

php中session和cookie的差別是什麼?

王林
王林轉載
2019-09-05 16:51:294838瀏覽

php中session和cookie的差別是什麼?

一、Session

(1)Session的由來以及介紹

Session:在電腦中,尤其是在網路應用程式中,稱為「會話控制」,生存時間為使用者在瀏覽某個網站時,從進入網站到關閉這個網站所經過的這段時間,也就是使用者瀏覽這個網站所花費的時間。

由於Http是一種無狀態的的協議,只負責請求伺服器,當它在伺服器相應之後,就與瀏覽器失去了聯繫。不能保存用戶的個人信息,就像一個商場和一個自動售貨機或普通的人之間的關係,所以為了彌補這個缺點Session才應聲而出,Session需要在4.1版本以上。

php中文網學習專題php session(包含圖文、影片、案例)

(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指定,下次瀏覽網頁時可以載入使用。

已儲存的檔案:

php中session和cookie的差別是什麼?

(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, '');

實例:

setcookie("UserName","imooc",time()-3600);

以上內容僅供參考。

相了解更多相關問題請造訪PHP中文網:PHP影片教學

#

以上是php中session和cookie的差別是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除