Cookie、session和token的区别

Cookie的内容是保存一小段文本信息,这些文本信息组成一份通行证。它是客户端对于无状态协议的一种解决方案。

Cookie的原理

(1)客户端第一次请求时,发送数据到服务器。

(2)服务器返回响应信息的同时,还会传回一个cookie(cookie S-001)

(3)客户端接收服务器的响应之后,浏览器会将cookie存放在一个统一的位置。

(4)客户端再次向服务器发送请求的时候,会把Cookie S-001再次发挥服务器。

cookie的生命周期

cookoe的生存时间是整个会话期间:浏览器会将cookie保存在内存中,浏览器关闭时自动删除这个cookie

cookie的生存时间是长久有效的:手动将cookie报存在客户端的硬盘中,浏览器关闭的话,cookie页不会清除;下次在打开浏览器访问对应网站内容,这个cookie就会自动再次发送到服务器。

session的原理:

(1)服务器在处理客户端请求过程中会创建session,并且为该session生存唯一的session ID。(这个session ID在随后的请求中会被用来重新获得已经创建的session。在session被创建后,就可以调用session相关的方法向session中新增内容,这些内容只会保存在服务器中)

(2)服务器将session ID发送到客户端

(3)当客户端再次请求时,就会带上这个session ID

(4)服务器接收到请求之后就会一句Session ID 找到相应的Session ,完成请求

ps:1、虽然session保存在服务器,但它还是需要客户端浏览器的支持,因为session需要使用cookie作为识别标志。服务器会向客户端发送一个名为JSEDDIONID的cookie,它的值为session ID。

2、当cookie被禁用时,可以使用url重写的方法:将session写在URL中,服务器在进行解析

session的生命周期:

与cookie一直,服务器也能设置session的生效时间。

cookie和session的区别

1、存储位置不同:session存储在服务器,cookie存储在客户端

2、存储容量不同:单个cookie保存数据小于等于4kb,一个站点最多保存20个cookie;session没有上限,但是由于服务器内存性能考虑,session不要存太多东西,并有删除机制

3、存取方式不同:cookie只能保存ASCII字符串;session能存取任何类型的数据

4、隐私策略不同:cookie是对客户端是可见的,可以分析存放在本地的cookie并进去cookie欺骗;session存储在服务器上,对于客户端是透明的,不存在敏感信息泄露的风险

5、服务器压力不同:session是保存在服务端,每隔用户都会产生一个session。加入并发访问的用户太多,会产生很多的session,对服务器是一个很大的负担,耗费大量内存

cookie保管在客户端,不占用服务器资源。对于并发用户十分多的网站,session是一个很好的选择。

6、浏览器的支持不同:session不支持新建窗口,只支持字窗口。而cookie都支持。

假设浏览器禁用cookie,session可以通过URL重写的方法实现。COOKIE就派不上用场。

Token的原理:

(1)客户端第一次请求时,发送用户信息到服务器。服务器对用户信息使用HSA256算法及密钥进行签名,再将这个签名和数据一起作为token返回给客户户端。

(2)服务端不再保存token,客户端保存token。

(3)当客户端再次发送请求时,在请求信息中将token一起发送给服务器。

(4)服务器用同样的HSA256算法和密钥,对数据再计算一次签名,和token的签名做比较

(5)如果相同,服务器就知道客户端登录过,则反之。

原文地址:https://www.cnblogs.com/YongTing/p/11423854.html

时间: 2024-10-12 11:58:21

Cookie、session和token的区别的相关文章

关于cookie,session和token

一.理解HTTP“无状态”的含义 我们知道,HTTP是一种无状态的协议,客户端与服务器建立连接并传输数据,数据传输完成后,连接就会关闭. 举个栗子,如果在无状态情况下访问淘宝,会出现以下场景: 1)打开淘宝的url,在这一步输入用户名和密码: 2)在首页选择一样商品,点击进去,又提示需要重新登录.因为HTTP是无状态的,虽然在第1步中已经输入了用户名和密码,但我们的客户端不会记住上一步输入的用户名和密码,而服务器也不会记住已登录的状态: 经过上述例子,我们可以把“无状态”理解为:不会对本次会话设

Cookie Session 与Token

由于HTTP是一种无状态的协议,服务器端无法知道用户与客户端交互的状态,比如如果一个用于之前已经访问过该服务器,服务器无法知道该用户是第二次访问,Session和Cookie都是用来保存用户与后端服务器的交互状态,简单来说Cookie存储在用户端,而Session存储在服务器端,这种存储方式的不同造成了二者在使用上的巨大区别 由于Cookie在客户端,每次请求的时候都要带着Cookie,如果Cookie非常大且每天的流量很大那么Cookie会占用很大带宽 Session在服务器端,但他只保存在一

Cookie,Session和Token机制和区别.

1.背景介绍 由于HTTP是一种无状态协议,服务器没有办法单单从网络连接上面知道访问者的身份,为了解决这个问题,就诞生了Cookie Cookie实际上是一小段的文本信息.客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie 客户端浏览器会把Cookie保存起来.当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器.服务器检查该Cookie, 以此来辨认用户状态.服务器还可以根据需要修改Cookie的内容. 实际就是颁发

存储机制 cookie session jwt token

cookieCookie的诞生 由于HTTP协议是无状态的,而服务器端的业务必须是要有状态的.Cookie诞生的最初目的是为了存储web中的状态信息,以方便服务器端使用.比如判断用户是否是第一次访问网站.目前最新的规范是RFC 6265,它是一个由浏览器服务器共同协作实现的规范. Cookie的处理分为: 服务器像客户端发送cookie 浏览器将cookie保存 之后每次http请求浏览器都会将cookie发送给服务器端 session1. 为什么要有session的出现?答:是由于网络中htt

session 、cookie、token的区别

cookie和session的区别 1.cookie数据存在客户端,session数据放在服务端 2.cookie不是很安全,别人可以分析放在本地cookies并进行cookie欺骗 3.session会在一定时间保存在服务器上,访问量增多时,占用服务器性能.考虑到减轻服务器性能,应使用cookie session和token的区别 参考资料:https://blog.csdn.net/jikeehuang/article/details/51488020 原文地址:https://www.cn

Python Web学习笔记之Cookie,Session,Token区别

一.Cookie,Session,Token简介 # 这三者都解决了HTTP协议无状态的问题 session ID or session token is a piece of data that is used in network communications (often over HTTP) to identify a session, a series of related message exchanges. Session identifiers become necessary

cookie、session与token

一.详述概念 1.Cookie机制 cookie的作用就是为了解决HTTP协议无状态的缺陷.cookie的使用是由浏览器按照一定的原则在后台自动发送给服务器的.cookie服务器生成,发送给浏览器,浏览器保存,下次请求同一网站再发送给服务器. cookie的内容主要包括:名字.值.过期时间.路径和域. 路径与域一起构成cookie的作用范围. 若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失.这种生命期为浏览器会话期的cookie被称为会话co

接口的鉴权cookie、session和token

1.HTTP是无状态协议 什么是无状态?就是说这一次的请求和上一次的请求是没有任何关系的,无法共享信息.好处就是速度快. 2.cookie.session的加入 HTTP请求是无状态的,所以解决共享信息的问题必须采用其他的手段,于是就有了sessionid,sessionid是基于cookie实现的.服务器为每一个用户生成一个不一样的随机字符串,每次向服务器发起HTTP请求时,都会把这个字符串传给服务器,这样就能区分用户了. 3.session的缺点 对于客户端来说session是非常好的,只需

服务器认证、授权、鉴权、session、token

1.session(赛神)会话机制 session 会话机制会借助 cookie + session 一起来做认证 cookie 是放在浏览器中的,cookie 是存储在客服端,但是可以由服务端和客户端生成. sesion 是保存在服务端的数据库中的,session 是服务端一块存储空间,只能由服务端生成. session 是把 session id 也就是session 的 key 值,保存到 cookie 当中 这个 key 值 一般在访问其他页面的时候会放到 cookie 当中,向后端发起