Cookie和Session的差异及使用

Cookie和Session的差异及使用

Cookie 和 Session 的机制差异

  1. Cookie 保存在客户端, 是一种在客户端保持状态的方案和贮存用户端会话的一种机制, 需要客户端开启Cookie支持
  2. Session 保存在服务端, 是客户端与服务端保持状态的一种解决方案,因为服务端保持状态需要保存一个客户端的状态Sesssion id,所以Session在一定程度上会依赖Cookie,但也可以通过其他方式传递Session id,例如post / get / webStorage(localStorage / sessionStorage,需结合JS和JSON来读写) 方式等, 很明显在安全性上 session 是比 cookie 高的
  3. Cookie 在客户端最大存储为4K,而Session在服务端默认是以文件的形式存储的,还可以存放在数据库和内存中
  4. Cookie 和 Session 都可以设置生命周期,但是sesson在访客关闭浏览器后且在session周期内不使用session id找回的情况下会失效
CookieSession
保存位置客户端服务端
储存大小小型文本文件(4k)文件/内存/数据库
存储形式一系列的键值对散列哈希值

Cookie 及 Sesson 用途

  1. Cookie 可用于临时记录用户访问的页面记录
  2. Cookie 可用于JavaScript访问及读写
  3. Cookie 保存用户的一些基本嘻嘻
  4. Session 用户后端的安全性验证
  5. Session 多用户后端操作的读写
  6. Session 解决表单的重复提交问题

设置Cookie 和 Session

JavaScript 对 Cookie 的读写
// 设置Cookie
function setCookie(name, value, expireday) {
    var exp = new Date();
    exp.setTime(exp.getTime() + expireday*24*60*60*1000); //设置cookie的期限
    document.cookie = name+"="+escape(value)+"; expires"+"="+exp.toGMTString();//创建cookie
}

// 读取Cookie
function getCookie(name) {
    var cookieStr = document.cookie;
    var cookieArr = cookieStr.match(new RegExp(name+"=[a-zA-Z0-9]*;$"));
    var cookieVal = cookieArr.split("=");
    if(cookieVal[0] == name) {
        return unescape(cookieVal[1]);
    }
}

// 删除Cookie
function clearCookie(name) {
    setCookie(name, "", -1);    //  调用 设置Cookie 函数 setCookie
}

PHP 操作 Cookie 和 Session
// PHP 设置Cookie
setcookie("name", "san", time()+3600);

// 读取Cookie
echo $_COOKIE["name"];

// 删除Cookie
setcookie("name", "", time()-3600);

// 启动Session会话
session_start();

// 设置Session
$_SESSION['name'] = 'san';

// 删除Session
unset($_SESSION['name']);

// 销毁Session
session_destroy();

注: PHP 的各种框架都会有封装读取和设置 Cookie 及 Session

参考文章

转载于:https://my.oschina.net/u/616147/blog/735301

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值