当前位置: 首页 > 编程日记 > 正文

前端页面——Cookie与Session有什么区别

我们在实际生活中总会遇到这样的事情,我们一旦登录(首次输入用户名和密码)某个网站之后,当我们再次访问的时候(只要不关闭浏览器),无需再次登录。而当我们在这个网站浏览一段时间后,它会产生我们浏览的记录,而且有的网站还提供购物车的功能。这些简单实用的功能就是通过cookie与Session实现的,接下来,让我们一起探讨一下它们是如何运行的。

1、概念

Cookie

有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。

Session

Session直接翻译成中文比较困难,一般都译成时域。在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。以及如果需要的话,可能还有一定的操作空间。

具体到Web中的Session指的就是用户在浏览某个网站时,从进入网站到关闭这个网站所经过的这段时间,也就是用户浏览这个网站所花费的时间。因此从上述的定义中我们可以看到,Session实际上是一个特定的时间概念。

需要注意的是,一个Session的概念需要包括特定的客户端,特定的服务器端以及不中断的操作时间。A用户和C服务器建立连接时所处的Session同B用户和C服务器建立连接时所处的Session是两个不同的Session。

2、区别

1、cookie数据存放在客户的浏览器上,session数据放在服务器上
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
4、单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能大于3K。

3运行机制

3.1、Cookie机制

在程序中, 会话跟踪是很重要的事情。理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆。例如, 用户A在超市购买的任何商品都应该放在A的购物车内,不论是用户A什么时间购买的,这都是属于同一个会话的,不能放入用户B或用户C的购物车内,这不属于 同一个会话。

而Web应用程序是 使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味 着服务器无法从连接上跟踪会话。即用户A购买了一件商品放入购物车内,当再次购买商品时服务器已经无法判断该购买行为是属于用户A的会话还是用户B的会话 了。要跟踪该会话,必须引入一种机制。

Cookie就是这样的一种机制。它可以弥补HTTP协议无状态的不足。在Session出现之前,基本上所有的网站都采用Cookie来跟踪会话。

由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理。

Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个 Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该 Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。

这里写图片描述

3.2 Session机制

除了使用Cookie,Web应用程序中还经常使用Session来记录客户端状态。Session是服务器端使用的一种记录客户端状态的机制,使用上比Cookie简单一些,相应的也增加了服务器的存储压力。

客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。

如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。

如下图所示,张三和李四分别访问该网站,在服务端会产生两个SessionID来区分该用户,而在客户端将对应的SessionID存放在Cookie中,以便我们再次访问时得到我们所需的资源。

这里写图片描述

4总结

这里,我们将cookie跟session简单介绍了一下,至于实际应用还需要我们在做项目中慢慢体会,例如,如何控制他们的生命周期,有效期等等。而且session和cookie是我们必须要掌握的技术,因为我们要经常使用它来进行消息的传递与验证,而且它们还应用在权限控制,单点登录等技术。不管怎么说,我们都应该重视这种简单常用的小技能。

转载于:https://www.cnblogs.com/zhuiluoyu/p/5386240.html

相关文章:

【Kaggle Learn】Python 5-8

五. Booleans and Conditionals Using booleans for branching logic x True print(x) print(type(x)) True <class bool> ①Booleans Python has a type bool which can take on one of two values: True and False. ②Comparison Operations a b, and, or, not等等 …

hdu 2795 段树--点更新

http://acm.hdu.edu.cn/showproblem.php?pid2795 在第一和第三多学校都出现线段树&#xff0c;我在比赛中并没有这样做。&#xff0c;热身下&#xff0c;然后31号之前把那两道多校的线段树都搞了&#xff0c;这是一道热身题 关键是建模&#xff1a; 首先一定看清楚题目构造的场…

2018-3-3 论文(网络评论中非结构化信息的表示与应用研究)笔记一

文章立脚点&#xff1a; 大量网络评论的出现&#xff0c;使得产品制造商或消费者很难跟踪己购产品用户的意见和建议&#xff0c;这就给他们的决策造成了额外的困难。 文章思路; 将网络评论中的非结构化信息处理成结构化信息 文章的总体的脉络 首先研宄评论分词、词性标注…

Blender中的大师级3D环境场景制作学习教程

你需要在一个地方学习的一切 在本课程中&#xff0c;您将学习Blender中景观创建的每一个重要工作流程&#xff0c;而无需使用任何付费附加组件或资产。 你将学习如何创造山脉、海洋、森林、沙漠、云层和天气影响。无需搜索描述特定技术或工作流程的在线视频–您将在一门课程中…

git diff 比较文件_使用Python创建你自己的diff工具

为什么我需要自己的diff工具&#xff1f;我经常使用git跟踪我的编码项目、文章、业务工作等等。git的一个美妙之处在于&#xff0c;你可以通过简单地使用其内置的diff功能来轻松地比较你的工作的不同状态。要使用这个功能&#xff0c;你只需要满足两个约束:首先&#xff0c;你需…

Oracle开发:normal ,sysdba,sysoper区别

Oracle将用户分成两类&#xff1a;【system】和【sys】 【system】用户只能用normal身份登陆em。(可以看成公司的普通成员)【sys】用户具有“SYSDBA”(可以看成公司的CEO)或者“SYSOPER”权限(可以看成公司的运营主管)&#xff0c;登陆em也只能用这两个身份&#xff0c;不能用n…

记录win10快捷键

wintab 虚拟桌面 winshifts 截图 wins 搜索 winq 小娜 win↑ 或←等 快速分屏 1809: winv 剪贴板 笔记本: ~~

清除浮动实用方案

1&#xff1a;给父元素添加overflow&#xff1a;hidden属性 2&#xff1a;father&#xff1a;after{ content: ""; display: block; clear: both; }转载于:https://www.cnblogs.com/liujianhui/p/4613600.html

2018-3-4 nginx和Tengine 以及高并发的概念

问题一&#xff1a;什么是nginx&#xff1f;&#xff1f; 来源百度百科&#xff1a;nginx_百度百科 https://baike.baidu.com/item/nginx/3817705?fraladdin Nginx (engine x) 是一个高性能的HTTP和反向代理服务器&#xff0c;也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔…

三维植物树木模型 Maxtree – Plant Models Vol 74

maxtree–工厂模型第74卷 大小解压后&#xff1a;2.34G 信息: 植物模型第74卷是高质量的三维植物模型的集合。包括12个物种&#xff0c;共72个单一模式。 获取地址&#xff1a;三维植物树木模型 Maxtree – Plant Models Vol 74-云桥网 种类 三角枫 槭树 复叶槭 鸡爪槭 白桦…

python pandas_Python库Pandas数据可视化实战案例

点击上方“爱好Python的胡同学”&#xff0c;选择“星标”公众号每晚八点&#xff0c;Python干货&#xff0c;不见不散&#xff01;数据可视化可以让我们很直观的发现数据中隐藏的规律&#xff0c;察觉到变量之间的互动关系&#xff0c;可以帮助我们更好的给他人解释现象&#…

inconfont 字体库应用

先去注册个号码&#xff0c;好像只可以用新浪微博登录哈&#xff0c;搞一个微博去。 第一就是点上面图标库&#xff0c;选择官方和所有都行。 恩接着点一个图标&#xff0c;他就自己跑到 第二个按钮哪里去了&#xff0c;在点第二个按钮&#xff0c;会出来一个创建项目&#xff…

deepin初试与file browser使用小结

①c盘也可以弄压缩盘安装deepin啊 ②deepin硬盘格式Windows看不见,而在deepin中Windows硬盘可以看见 ③安装完deepin如果直接进入了win10,其实不用费这么大劲搞来搞去,比如修复uefi easyuefi什么的 直接关闭win10的快速启动 然后用easybcd 弄个引导(grup2)就行 很简单 ④dee…

iptables工具__过滤包—命令

iptables工具__过滤包—命令(-A、-I、-D、-R、-L等)、参数(-p、-s、-d、--sport、--dport、-i、-o等)、动作-j (ACCEPT、DROP、REJECT、REDIRECT等) iptables 指令语法&#xff1a;iptables [-t table] command [match] [-j target/jump]-t 参数用来指定规则表&#xff0c;内建…

2018-3-5(论文——网络中非结构信息的表示与应用)笔记二 (歧义词,未登录词,禁用词)

1.文本的词性标注 词性作为一种语义特征通常&#xff1a;名词 n 动词 v 副词 d 连词 c 形容词 a 通过使用自动标注器&#xff0c;完成文本的标注。 2.歧义词 -----汉字处理 按照偏正结构&#xff0c;汉字通常是形容词在前名词&#xff08;中心…

PBR游戏3D模型合集包 PBR Game 3D-Models Bundle February 2022

PBR游戏3D模型捆绑包2022年2月 大小解压后&#xff1a;6.99G MAX| OBJ | FBX |TEX 模型获取&#xff1a;PBR游戏3D模型合集包 PBR Game 3D-Models Bundle February 2022-云桥网 包括: 500马格南定制左轮手枪 ACV-15 加法机 模拟无线电A16-PRC316 陆军奔驰 巴雷特PRC-2080战术…

python编写用户输入的是q么代码_Python课 #01号作业

为了记录我的Python课&#xff0c;将我的作业发上来&#xff0c;欢迎各位大佬评鉴。如果你有什么更好的想法&#xff0c;请在下方评论或联系我。谢谢&#xff01; 作业一&#xff1a;向某人打招呼 描述 程序接收用户输入的姓名&#xff0c;然后输出向该姓名问好的文字。 代码&a…

CPU(处理器)、内存、硬盘之间的关系

前面提到了,电脑之父——提出了计算机的五大部件:输入设备、输出设备、存储器、运算器和控制器。我们看一下现在我们电脑的: 键盘鼠标、显示器、机箱、音响等等。这里显示器为比较老的CRT显示器,现在一般都成功了液晶显示器。我们想一下,我们在玩电脑的时候,我们使用键盘鼠标来操作电脑,我们在和其他人QQ聊天的时候,鼠标可以帮我们选中聊天的人,打开聊天窗口,键盘则是负责打字,帮我们输入聊天的内容。我们在操作键盘鼠标的时候,其实都是在告诉电脑来做什么的。我们管键盘和鼠标叫输入设备。向电脑输入数据和信息的设备。

复习笔记之母函数

HDU 1398 Square Coins 题意&#xff1a;给 17 种面值的钱币&#xff0c;分别为&#xff1a;1-4-9-。。。-17^2.问 x&#xff08;x < 300) 能有多少种不同的兑换方式。 思考&#xff1a;略~母函数简单模板题目。事实上还可以用完全背包来做。 1 #include <iostream>2 …

k8s搭建部署(超详细)

Kubernetes是Google 2014年创建管理的,是Google 10多年大规模容器管理技术Borg的开源版本。它是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。快速部署应用快速扩展应用无缝对接新的应用功能节省资源,优化硬件资源的使用可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)可扩展: 模块化, 插件化, 可挂载, 可组合自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展。

通过anaconda2安装python2.7和安装pytorch

①由于官网下载anaconda2太慢&#xff0c;最好去byrbt下载&#xff0c;然后安装就行 ②安装完anaconda2会自动安装了python2.7&#xff08;如终端输入python即进入python模式&#xff09; 但是可能没有设置环境变量&#xff0c;导致conda命令找不到 解决方案&#xff1a;http…

JavaScript服务器端开发基础之Math对象小结

JavaScript提供基础的算术运算符来实现对算术运算的支持&#xff0c;例如加法运算符&#xff0c;减法运算符-&#xff0c;乘法运算符*&#xff0c;除法运算符/和求余运算符%。此外&#xff0c;还支持复杂的算术运算&#xff0c;这是通过作为Math对象的属性定义的函数和常量来实…

2018-3-5 (论文—网络评论中结构化信息处理的应用于研究)笔记三(互信息,信息增益,期望交叉熵,基于词频的方法,CHI统计)

传统的特征提取的方法&#xff1a; 1.互信息量&#xff08;Mutual Information MI&#xff09;&#xff1a;评估零个随机变量相关程度&#xff08;数组额上离散使用了累加&#xff0c;而连续是积分&#xff09; 百度&#xff1a;互信息_百度百科https://baike.baidu.com/item/%…

艺术站-卡通和风格化的HDRI天空

卡通和风格化游戏的新HDRI天空纹理。大小解压后&#xff1a;576M 目前&#xff0c;pack拥有28个独特的HDRI天空变体。每个天空的分辨率为40962048像素。 格式纹理:png&#xff0c;HDR 素材获取&#xff1a;艺术站-卡通和风格化的HDRI天空-云桥网 skybox的各种变体:夜晚、白天、…

Code Forces Bear and Forgotten Tree 3 639B

B. Bear and Forgotten Tree 3 time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output A tree is a connected undirected graph consisting of n vertices and n - 1 edges. Vertices are numbered 1 throu…

opencv处理dicom图像_图像处理|opencv| 利用opencv把照片变换成素描风格

大家好我是阿猩学长&#xff0c;今天给大家利用图像处理库opencv来把图片转换为素描的风格。其中利用的编程语言为C。话不多说先给大家看看实际的效果图。原图处理后的图片原图效果图下面先给大家介绍一下大概的编程思路&#xff0c;再结合代码给大家分析首先将彩色图转换成灰度…

【实验楼】python简明教程

①终端输入python进入 欣赏完自己的杰作后&#xff0c;按 Ctrl D 输入一个 EOF 字符来退出解释器&#xff0c;你也可以键入 exit() 来退出解释器。 ②vim键盘快捷功能分布 ③这里需要注意如果程序中没有 #!/usr/bin/env python3 的话&#xff0c;应该使用 python3 hellowor…

Class101–如何高效地构建强大的数字绘画

你有没有对一幅画有过很好的想法&#xff0c;但不知道如何开始或努力完成这个过程&#xff1f;这门课的目的是给你工具和理解&#xff0c;帮助你把想法变成现实。 所有你需要知道的基本知识。 本课程将涵盖颜色和光线的基本原理、透视构图以及使你的过程高效可靠的高级技巧。 …

java nextline_Java编程语言基础的9根支柱

Java编程的基础概念包括&#xff1a;数据类型&#xff0c;分支与循环等。1.HelloWorld先从最简单的Java程序开始&#xff1a;public class HelloWorld{ public static void main(String[] args) { System.out.println("HelloWorld")&#xff1b; }}最显眼…