cookie和session(1)

cookie和session

1.cookie产生

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

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不同

  • cookie数据存放在客户的浏览器上;session数据放在服务器缓存中。

  • cookie是明文,不安全,别人利用cookie可以被篡改和攻击;而session存放服务器缓存中并且加密的,其他用户看不到。

  • session会在一定时间内保存在服务器上。当用户访问增多,会比较占用你服务器内存,考虑到减轻服务器性能方面,使用cookie。

  • 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie;session的密钥(cookie),可以对应可以对应无限大的数据

 

 

转载于:https://www.cnblogs.com/wyliunan/p/7452815.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/391538.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

熊猫数据集_为数据科学拆箱熊猫

熊猫数据集If you are already familiar with NumPy, Pandas is just a package build on top of it. Pandas provide more flexibility than NumPy to work with data. While in NumPy we can only store values of single data type(dtype) Pandas has the flexibility to st…

2018年,你想从InfoQ获取什么内容?丨Q言Q语

- Q 言 Q 语 第 三 期 - Q言Q语是 InfoQ 推出的最新板块, 旨在给所有 InfoQer 一个展示观点的平台。 每期一个主题, 不扣帽子,不论对错,不看输赢, 只愿跟有趣的灵魂相遇。 本期话题: 2018年,你想…

特征阻抗输入阻抗输出阻抗_软件阻抗说明

特征阻抗输入阻抗输出阻抗by Milan Mimica米兰米米卡(Milan Mimica) 软件阻抗说明 (Software impedance explained) 数据处理组件之间的阻抗不匹配 (The impedance mismatch between data processing components) It all starts with the simplest signal-processing diagram …

数学建模3

数学建模3 转载于:https://www.cnblogs.com/Forever77/p/11423169.html

leetcode 190. 颠倒二进制位(位运算)

颠倒给定的 32 位无符号整数的二进制位。 提示: 请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因…

JAVA基础——时间Date类型转换

在java中有六大时间类,分别是: 1、java.util包下的Date类, 2、java.sql包下的Date类, 3、java.text包下的DateFormat类,(抽象类) 4、java.text包下的SimpleDateFormat类, 5、java.ut…

LeetCode第五天

leetcode 第五天 2018年1月6日 22.(566) Reshape the Matrix JAVA class Solution {public int[][] matrixReshape(int[][] nums, int r, int c) {int[][] newNums new int[r][c];int size nums.length*nums[0].length;if(r*c ! size)return nums;for(int i0;i<size;i){ne…

matplotlib可视化_使用Matplotlib改善可视化设计的5个魔术技巧

matplotlib可视化It is impossible to know everything, no matter how much our experience has increased over the years, there are many things that remain hidden from us. This is normal, and maybe an exciting motivation to search and learn more. And I am sure …

adb 多点触碰_无法触及的神话

adb 多点触碰On Twitter, in Slack, on Discord, in IRC, or wherever you hang out with other developers on the internet, you may have heard some formulation of the following statements:在Twitter上&#xff0c;在Slack中&#xff0c;在Discord中&#xff0c;在IRC…

robot:循环遍历数据库查询结果是否满足要求

使用list类型变量{}接收查询结果&#xff0c;再for循环遍历每行数据&#xff0c;取出需要比较的数值 转载于:https://www.cnblogs.com/gcgc/p/11424114.html

leetcode 74. 搜索二维矩阵(二分)

编写一个高效的算法来判断 m x n 矩阵中&#xff0c;是否存在一个目标值。该矩阵具有如下特性&#xff1a; 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,3,5,7],[10,11,16,20],[23,30,34…

rm命令

命令 ‘rm’ &#xff08;remove&#xff09;&#xff1a;删除一个目录中的一个或多个文件或目录&#xff0c;也可以将某个目录及其下属的所有文件及其子目录均删除掉 语法&#xff1a;rm&#xff08;选项&#xff09;&#xff08;参数&#xff09; 默认会提示‘是否’删除&am…

javascript消除字符串两边空格的两种方式,面向对象和函数式编程。python oop在调用时候的优点...

主要是javascript中消除字符串空格&#xff0c;比较两种方式的不同 //面向对象&#xff0c;消除字符串两边空格 String.prototype.trim function() { return this.replace(/(^\s*)|(\s*$)/g, ""); };//去左右空格的函数; function trim(s){return s.replace(/(^\s*)…

如何使用Retrofit,OkHttp,Gson,Glide和Coroutines处理RESTful Web服务

Kriptofolio应用程序系列-第5部分 (Kriptofolio app series — Part 5) These days almost every Android app connects to internet to get/send data. You should definitely learn how to handle RESTful Web Services, as their correct implementation is the core knowle…

leetcode 90. 子集 II(回溯算法)

给你一个整数数组 nums &#xff0c;其中可能包含重复元素&#xff0c;请你返回该数组所有可能的子集&#xff08;幂集&#xff09;。 解集 不能 包含重复的子集。返回的解集中&#xff0c;子集可以按 任意顺序 排列。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,2] 输…

robot:linux下安装robot环境

https://www.cnblogs.com/lgqboke/p/8252488.html 转载于:https://www.cnblogs.com/gcgc/p/11425588.html

感知器 机器学习_机器学习感知器实现

感知器 机器学习In this post, we are going to have a look at a program written in Python3 using numpy. We will discuss the basics of what a perceptron is, what is the delta rule and how to use it to converge the learning of the perceptron.在本文中&#xff0…

JS解析格式化Json插件,Json和XML互相转换插件

Json对象转换为XML字符串插件 http://www.jsons.cn/Down/jquery.json2xml.js var xml_content $.json2xml(json_object);XML字符串转换为Json对象插件 http://www.jsons.cn/Down/jquery.xml2json.js var json_obj $.xml2json(xml_content);json序列化和反序列化方法插件 …

Python之集合、解析式,生成器,函数

一 集合 1 集合定义&#xff1a; 1 如果花括号为空&#xff0c;则是字典类型2 定义一个空集合&#xff0c;使用set 加小括号使用B方式定义集合时&#xff0c;集合内部的数必须是可迭代对象&#xff0c;数值类型的不可以 其中的值必须是可迭代对象&#xff0c;其中的元素必须是可…

深度神经网络课程总结_了解深度神经网络如何工作(完整课程)

深度神经网络课程总结Even if you are completely new to neural networks, this course from Brandon Rohrer will get you comfortable with the concepts and math behind them.即使您是神经网络的新手&#xff0c;Brandon Rohrer的本课程也会使您熟悉其背后的概念和数学。 …