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

yizhihongxing

下面是带你了解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作用原理区别和用法 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • js调试工具 Javascript Debug Toolkit 2.0.0版本发布

    JavaScript Debug Toolkit是一款网页开发调试工具,使用它可以帮助开发者快速定位及解决网页中的错误。下面是使用JavaScript Debug Toolkit的完整攻略。 安装 为了使用JavaScript Debug Toolkit,你需要将它下载到本地。你可以从GitHub上下载JavaScript Debug Toolkit的最新版…

    JavaScript 2023年6月11日
    00
  • js实现左右两侧浮动广告

    下面是关于“js实现左右两侧浮动广告”的完整攻略。 实现思路 我们首先需要确定广告层的定位方式,一般采用 position: fixed 来实现固定的效果。然后利用 JS 计算浏览器窗口的宽度,以及广告层的宽度,计算出广告层到浏览器窗口两侧的距离,以此确定广告层的位置。接着,我们需要监听浏览器窗口的 scroll 和 resize 事件,根据滚动的位置和窗口…

    JavaScript 2023年6月11日
    00
  • 在javascript中如何得到中英文混合字符串的长度

    在javascript中计算中英文混合字符串长度,需要考虑到中文字符在计算长度时是占两个字节的。下面提供几种方法来实现计算中英文混合字符串长度的功能。 方法一:利用正则表达式匹配中文字符并计算长度 将中文字符在Unicode范围中的编码区间转换成正则表达式的形式 [\u4e00-\u9fa5],代表是包含了中文的unicode编码。 将字符串中所有的中文字符…

    JavaScript 2023年5月28日
    00
  • 15个简单的JS编码标准让你的代码更整洁(小结)

    15个简单的JS编码标准让你的代码更整洁(小结) 本文为大家整理了15个简单的javascript编码标准,帮助开发人员写出更加干净整洁的代码,提高可维护性和可读性。 1. 使用=== 比较运算符 使用=== 比较运算符可以避免类型不同比较混淆和类型自动转换的问题。 2. 使用const 或 let, 不使用 var 使用 const 或 let 比 var…

    JavaScript 2023年5月18日
    00
  • 解决Vue路由导航报错:NavigationDuplicated: Avoided redundant navigation to current location

    当使用Vue-Router来进行页面导航时,有时会遇到“NavigationDuplicated: Avoided redundant navigation to current location”报错。这个错误提示很明确,表示重复导航到了当前的页面地址。 这种错误通常是因为两次相同的路由导航发生在短时间内,例如用户快速点击同一个路由链接或使用了类似于Vue…

    JavaScript 2023年6月11日
    00
  • 原生JS实现匀速图片轮播动画

    下面我就详细讲解“原生JS实现匀速图片轮播动画”的完整攻略: 一、概述 图片轮播动画是网页设计中常用的效果,它能够增加页面的美感,并且能够呈现多个图片,帮助用户更好的了解网站的内容。本攻略将介绍如何使用原生JS实现匀速图片轮播动画。 二、实现步骤 1. HTML结构 首先,在HTML中需要创建一个容器,用于存储图片和轮播进度条。HTML结构如下: <d…

    JavaScript 2023年6月10日
    00
  • JavaScript 转义字符JSON parse错误研究

    下面是「JavaScript 转义字符JSON parse错误研究」的完整攻略。 背景 JavaScript中的字符串可以使用转义字符表示特殊字符,如\n表示换行,\t表示制表符。当我们将含有转义字符的字符串转成JSON对象时,有时会遇到JSON parse错误的问题,这可能会影响我们的程序正常运行。 解决方案 双重转义字符 JSON格式中定义了一些特殊字符…

    JavaScript 2023年5月18日
    00
  • 关于__defineGetter__ 和__defineSetter__的说明

    关于 __defineGetter__ 和 __defineSetter__ 的说明 __defineGetter__ 和 __defineSetter__ 是 JavaScript 中的两个方法,它们可以用于动态定义属性的 getter 和 setter 方法。在 ES5 中已经被废弃,建议使用 Object.defineProperty 来替代它们。 _…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部