下面是带你了解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的区别
- 数据存储位置不同:Cookie在客户端存储,而Session在服务器端存储。
- 储存方式不同:Cookie以文本方式储存,只能储存字符串类型的数据而Session则可以储存多种数据类型。
- 安全性不同:因为Session是保存在服务器端的,所以比Cookie安全,Cookie易受到攻击。
- 生命周期不同: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作用原理区别和用法 - Python技术站