cookie和session區別


cookie和session區別

 

一、什么是Cookie
Cookie 是在HTTP協議下,服務器或腳本可以維護客戶工作站上信息的一種方式。Cookie 是由 Web服務器保存在用戶瀏覽器(客戶端)上的小文本文件(內容通常經過加密),它可以包含有關用戶的信息。無論何時用戶鏈接到服務器,Web站點都可以訪問Cookie 信息,可以看作是瀏覽器緩存.
二、什么是Session
Session的定義很抽象,在不同的場合中session一詞的含義也很不相同.它可以代表服務器與瀏覽器的一次會話過程,指從一個瀏覽器窗口打開到關閉的這個期間.也可以用於指一類用來在客戶端與服務器之間保持狀態的解決方案。

三、cookie和session區別:
1、數據存放位置不同:
cookie數據存放在客戶的瀏覽器上,session數據放在服務器上。
2、安全程度不同:
cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙,考慮到安全應當使用session。
3、性能使用程度不同:
session會在一定時間內保存在服務器上。當訪問增多,會比較占用你服務器的性能,考慮到減輕服務器性能方面,應當使用cookie。
4、數據存儲大小不同:
單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie,而session則存儲與服務端,瀏覽器對其沒有限制。

5、會話機制不同:
session會話機制:session會話機制是一種服務器端機制,它使用類似於哈希表(可能還有哈希表)的結構來保存信息。
cookies會話機制:cookie是服務器存儲在本地計算機上的小塊文本,並隨每個請求發送到同一服務器。 Web服務器使用HTTP標頭將cookie發送到客戶端。在客戶端終端,瀏覽器解析cookie並將其保存為本地文件,該文件自動將來自同一服務器的任何請求綁定到這些cookie。

<?php
session_start();
$_SESSION['a']='admin';
// 登錄時判斷是否登錄過
if($_COOKIE['admin']){
    //頁面跳轉
    header('location:sumer.php');
}
//登錄成功設置cookie
if($_POST){
   $unama=time($_POST['unama']);
   $pasd=md5($_POST['pasd']);

   if($unama=='zhangsan'||$pasd=='d41d8cd98f00b204e9800998ecf8427e'){
       //設置cookie
    setcookie('admin','admin',time()+3600);
    header('location:sumer.php');
   }else{
       echo '用戶名錯誤';
   }
}
?>
<?php
session_start();
var_dump($_SESSION);
//沒有登錄成功
if(!$_COOKIE['admin']){
    //頁面跳轉
    header('location:index.php');
}
?>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM