沃梦达 / IT编程 / 前端开发 / 正文

带你了解session和cookie作用原理区别和用法

下面是带你了解session和cookie作用原理区别和用法的完整攻略。

下面是带你了解session和cookie作用原理区别和用法的完整攻略。

什么是Session和Cookie?

Session和Cookie都是用于网站管理和储存状态的技术。其中,Session是在服务器端管理状态,而Cookie是在客户端管理状态。

Cookie

Cookie是一小段文本信息,存储在用户的计算机中。当用户访问网站时,网站服务器会将Cookie发送至用户计算机中,每次用户访问该网站时,用户计算机会自动将该Cookie发送至服务器,以便服务器可以判断用户是否已经登录,或是否需要记住某些首选项等信息。

Session

Session是在服务器端创建的一段储存用户状态的数据,它与用户的浏览器通过Cookie进行交互。一旦用户使用浏览器访问服务器,服务器会创建一个Session,并在用户浏览器中发送一个Cookie,Cookie将Session ID(会话标识符)放在其中。在以后的请求中,客户端会发送这个Cookie,服务器端会根据Session ID来查找相应的会话,并返回储存在服务器端的信息。

Session和Cookie的区别

  1. 数据存储位置不同:Cookie在客户端存储,而Session在服务器端存储。
  2. 储存方式不同:Cookie以文本方式储存,只能储存字符串类型的数据而Session则可以储存多种数据类型。
  3. 安全性不同:因为Session是保存在服务器端的,所以比Cookie安全,Cookie易受到攻击。
  4. 生命周期不同:Cookie可以设置失效时间,而Session只要关闭浏览器或者超过了Session过期时间就会失效。

Session和Cookie的用法示例

Cookie示例

// 存储Cookie
document.cookie = "username=张三"; // 存储一个名为username,值为“张三”的Cookie。

// 读取Cookie
function getCookie(name) {
  var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");

  if(arr=document.cookie.match(reg)){
      return unescape(arr[2]);
  }else{
      return null;
  }
}

var username = getCookie("username"); // 读取名为username的Cookie。

Session示例

PHP实现方式

// 存储Session
session_start();
$_SESSION['username'] = '张三';

// 读取Session
session_start();
$username = $_SESSION['username'];

Node.js实现方式

const session = require('express-session');

app.use(session({
  secret: 'secret',
  resave: false,
  saveUninitialized: true,
  cookie: { secure: true }
}));

// 存储Session
req.session.username = '张三';

// 读取Session
var username = req.session.username;

以上是带你了解Session和Cookie作用原理区别和用法的完整攻略,希望能帮助到你。

本文标题为:带你了解session和cookie作用原理区别和用法