cookie和session同与异

2023-05-16

面试和工作中有时候碰到cookie和session的同异,现在小结如下:
首先看cookie
cookie增删改查:http://www.w3school.com.cn/js...

1.cookie产生

识别用户:用来客户端和服务器端进行会话

  • HTTP是无状态协议,这就回出现这种现象:当你登录一个页面,然后转到登录网站的另一个页面,服务器无法认识到。或者说两次的访问,服务器不能认识到是同一个客户端的访问,这就让你重复登录,所以产生了cookie。
  • cookie:第一次访问一个服务器,不携带cookie,这时服务器在响应(response)下行HTTP报文中,命令浏览器携带cookie信息;浏览器再访问同一个域的时候,将把cookie信息携带到请求(request)上行HTTP请求中,从而实现了HTTP模拟有了状态。
  • 每个特定域名下面的cookie数量是有限制的,fixfox是50个,Opera是30个,chrome和safari是没有限制的

2.cookie特点

  • cookie是不加密的
  • cookie是可以被篡改和攻击
  • cookie大小受到限制

3.node使用

//使用cookie必须要使用cookie-parser中间件
var cookieParser = require('cookie-parser');
app.use(cookieParser()); 
express中的cookie: res负责设置cookie, req负责识别cookie。
cookie用来制作记录用户的一些信息,如购买历史、猜你喜欢、访问量等

现在看session

4.session产生

由于cookie明文等一些不足所以产生了session
session依赖cookie,就是利用cookie,实现的“会话”,因此当cookie被禁用,session也无法使用。
session比cookie不一样在哪里呢? session会下发一个秘钥(cookie)(乱码),客户端每次访问都携带这个秘钥,那么服务器如果发现这个秘钥吻合,就能够显示这个用户曾经保存的信息。
任何语言中,session的使用,是“机理透明”的,也就是让你感觉不到这事儿和cookie有关

5.session特点和使用

session是加密的

var session = reqiure("express-session");
app.use(session({
        ..一些配置
}));    
app.get("/",function(req,res){
    console.log(req.sission.login);
});    
app.get("/login",function(req,res){
         req.session.login = "1";
});
都是req对象

Session存在于服务器的内存中,如果服务器重启就会丢失session同时需要重新登录

6.cookie和session不同

  1. cookie数据存放在客户的浏览器上;session数据放在服务器缓存中。
  2. cookie是明文,不安全,别人利用cookie可以被篡改和攻击;而session存放服务器缓存中并且加密的,其他用户看不到。
  3. session会在一定时间内保存在服务器上。当用户访问增多,会比较占用你服务器内存,考虑到减轻服务器性能方面,使用cookie。

4.单个cookie保存的数据不能超过4K,如果cookie的内容超过4K的话,那么调用的时候就会返回一个空的字符串;session的密钥(cookie),可以对应无限大的数据

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cookie和session同与异 的相关文章

随机推荐

  • 分析由Python编写的大型项目(Volatility和Cuckoo)

    之前使用python都是用来做一些简单的脚本 xff0c 本质上和bat批处理文件没有区别 但是Python是可以用来编写大型的项目的 xff0c 比如 Volatility https code google com p volatili
  • AI学习笔记——End-to-End(端到端)的深度学习

    1 什么是End to End 学习 要知道什么是End to End学习首先要知道传统的非End to End学习是什么 以语义分类 xff08 判断评论为正面评论还是负面评论 xff09 为例 xff0c 非End to End的学习需
  • linux安装openssl

    sudo apt get install openssl sudo apt get install libssl dev RedHat centos才是openssl devel
  • IdentityServer4 使用OpenID Connect添加用户身份验证

    使用IdentityServer4 实现OpenID Connect服务端 xff0c 添加用户身份验证 客户端调用 xff0c 实现授权 IdentityServer4 目前已更新至1 0 版 xff0c 在之前的文章中有所介绍 Iden
  • ftp服务器覆盖文件,ftp 覆盖 服务器 文件

    ftp 覆盖 服务器 文件 内容精选 换一换 本章节适用于MRS 3 x之前版本 Loader支持以下多种连接 xff0c 每种连接的配置介绍可根据本章节内容了解 obs connectorgeneric jdbc connectorftp
  • Ubuntu-14.04. sh .py腳本双击無法執行问题的解决方法

    Ubuntu 14 04中默认文件用gedit文本打开 xff0c 而不是BT5里面的默认双击打开四个选择 xff0c 例如以下图 xff08 这是配置完毕后的结果 xff0c 就不换BT5系统了 xff09 xff1a 直接文本打开 xf
  • Ubuntu解决循环登陆问题

    问题描述 xff1a 安装驱动之后重启 xff0c 一直循环在登录页面 解决方法 xff1a Ctrl 43 Alt 43 F1 xff0c 进入命令行界面 1 卸载原来的驱动 sudo apt get remove purge nvidi
  • 【Linux/CentOS】Boolean ftp_home_dir is not defined

    安装完vsftpd软件后 xff0c 因为CentOS系统的SELinux安全策略默认是没有开启FTP服务 xff0c 直接访问会报错500 OOPS xff0c 所以需要修改为允许使用FTP服务 目标 xff1a 希望ftp用户可以访问自
  • LINUX中 设置登录超时

    ssh设置超时时间 ssh连接超时问题解决方案 xff1a 1 修改server端的etc ssh sshd config Client AliveInterval 60 xff03 server每隔60秒发送一次请求给client xff
  • eclipse 停止java程序运行_Eclipse:停止运行代码(java)

    有时 xff0c 我会运行一个偶然包含无限循环之类的程序 Eclipse让我继续编辑程序 xff0c 但速度非常慢 我该如何阻止它 xff1f 我是否想重新启动JVM xff1f 重新启动eclipse本身总是可行的 xff0c 但这会中断
  • Linux 的五个重启命令及具体说明

    一 Linux 的五个重启命令 1 shutdown 2 poweroff 3 init 4 reboot 5 halt 二 五个重启命令的具体说明 shutdown reboot 在linux下一些常用的关机 重启指令有shutdown
  • 如何直接在ftp里编辑文件

    首先要连接ftp xff0c 如何链接ftp 这个我已经分享过 xff0c 如果还有不懂的 xff0c 可以查看下经验分享 xff0c 打开ftp xff0c 并连接你要修改的站点 xff01 下载安装代码编辑器 xff0c 比如EditP
  • 什么是真正的程序员?

    什么是真正的程序员 这篇文章的原文来自 xff1a A Little Printf Story 作者仿照 小王子 中的情节 xff0c 通过小printf遇见的不同类型的程序员 xff0c 最后悟出什么才是真正的程序员 xff01 第一次翻
  • python import ssl失败_Python3.7.5 ssl模块导入失败的解决办法

    import ssl if we can 39 t import it let the error propagate ImportError DLL load failed 找不到指定的程序 遇到问题的过程 xff0c 在windows7
  • Linux学习之CentOS(三十)--SELinux安全系统基础

    您可以通过点击 右下角 的按钮 来对文章内容作出评价 也可以通过左下方的 关注按钮 来关注我的博客的最新动态 如果文章内容对您有帮助 不要忘记点击右下角的 推荐按钮 来支持一下哦 如果您对文章内容有任何疑问 可以通过评论或发邮件的方式联系我
  • PHP中__FUNCTION__与__METHOD__的区别

    你知道php中 FUNCTION 与 METHOD 的区别吗 xff1f 本文通过一个小例子 xff0c 为大家介绍下二者的区别 xff0c 有兴趣的朋友可以参考下 PHP中 FUNCTION 与 METHOD 的区别 xff0c 主要在以
  • linux设置登录超时,登录失败策略

    1 登录超时 在vi etc profile 末尾加上 如果有就修改 没有就添加 export TMOUT 61 600 单位为秒 10分钟 2 登录失败 在 etc pam d system auth 加上 deny 61 3错误次数 u
  • SecureCRT分屏显示

    Tab右键 或者 Session Manager右键 gt Send to New Tab Group
  • WPF DataGrid多表头/列头,多行头,合并单元格,一列占据多行

    原文 WPF DataGrid多表头 列头 xff0c 多行头 xff0c 合并单元格 xff0c 一列占据多行 先上效果图 xff1a 思路说明 xff1a 这是两个DataGrid xff0c 没有嵌套 xff0c 位置和高度保持一致
  • cookie和session同与异

    面试和工作中有时候碰到cookie和session的同异 xff0c 现在小结如下 xff1a 首先看cookie cookie增删改查 xff1a http www w3school com cn js 1 cookie产生 识别用户 用