关于cookie,session和token

一.理解HTTP“无状态”的含义

  我们知道,HTTP是一种无状态的协议,客户端与服务器建立连接并传输数据,数据传输完成后,连接就会关闭。

  举个栗子,如果在无状态情况下访问淘宝,会出现以下场景:

  1)打开淘宝的url,在这一步输入用户名和密码;

  2)在首页选择一样商品,点击进去,又提示需要重新登录。因为HTTP是无状态的,虽然在第1步中已经输入了用户名和密码,但我们的客户端不会记住上一步输入的用户名和密码,而服务器也不会记住已登录的状态;

  经过上述例子,我们可以把“无状态”理解为:不会对本次会话设置缓存区,来分别记录客户端和服务器在临时会话中产生的数据

  理解了HTTP无状态的含义,再去看cookie,session和token的概念。

二.cookie的概念

  Cookie是客户端保存用户信息的一种机制,仅仅是浏览器实现的一种数据存储功能。

  Cookie由服务器生成,发送给客户端的,客户端把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器。由于cookie是存在客户端上的,所以浏览器加入了一些限制确保cookie不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的cookie数量是有限的。

三、session

  Session是在服务器端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中:

  

  

  1)客户端第一次请求服务器;

  2)服务器在内存中开辟一块空间,并返回Session ID;

  3)因为服务器需要记录用户状态,故在响应信息中包含一个SetCookie的响应头,要求客户端在Cookie中记录Seesion ID;

  4)客户端根据SetCookie中的响应头信息,将sessionID存储在Cookie中;

  5)再次请求服务器,客户端会在请求信息中携带Cookie请求头;

  6)服务器根据客户端携带的请求头进行用户身份、状态等较验。

四、token

  token是存储在客户端的令牌,一般用于身份校验。

  

  值得一提的是,在上述步骤②生成token时会加入有效期,而在步骤⑥解析token时,也会去判断token是否过期。

  步骤④存储token时,可以存储在cookie或者redis中。

  步骤⑤携带token时,可以在url中携带,也可以在post请求或http的header中携带。

五、session和token的区别

  1)token和session都用于身份验证,session是会话,token是令牌;

  2)身份认证 token的安全性要高于session,因为每个请求都有签名还能防止监听以及重放攻击,而session必须靠链路层来保障通讯安全。

  3)session和token都需要去管理过期时间。

HTTP“无状态”的解释:https://www.cnblogs.com/bellkosmos/p/5237146.html

cookie,session,token的概念:https://blog.csdn.net/lcgoing/article/details/86754955

https://www.zhihu.com/question/19786827/answer/28752144

原文地址:https://www.cnblogs.com/May-study/p/11649816.html

时间: 2024-08-12 18:15:57

关于cookie,session和token的相关文章

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

cookie、session与token

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

cookie,session,token的定义及区别

参考了很多文章总结的. 1.cookie(储存在用户本地终端上的数据) 服务器生成,发送给浏览器,浏览器保存,下次请求同一网站再发送给服务器. 2.session(会话) a.代表服务器与浏览器的一次会话过程,这个过程是连续的,也可以时断时续的. b.cookie中存放着一个sessionID.请求时会发送这个ID. c.session因为请求(request对象)而产生. d.session是一个容器,可以存放会话过程中的任何对象. e.session的创建和使用总在服务端,而浏览器从来都没得

cookie session token 之间的区别

cookie 和session的区别 1.cookie数据存放在客户的浏览器上,session数据放在服务器上. 2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 考虑到安全应当使用session. 3.session会在一定时间内保存在服务器上.当访问增多,会比较占用你服务器的性能 考虑到减轻服务器性能方面,应当使用COOKIE. 4.单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie. token 和session

Cookie && Session && Token

Cookie的由来: HTTP 本身是一个无状态的 request/response 协议. 服务器接收一个来自客户端的request, 处理完以后返回一个response. 但是这个过程中, 服务器几乎没有什么信息可以用来判定是哪个客户端(用户)发来的request, 也无法记录用户的请求顺序. Cookie是目前识别用户,实现持久会话最好的方式.Cookie通常会跟User-Agent,Referer,X-Forwarded-For,JS等技术共同使用,为服务器提供更为详细的信息.简而言之,

cookie、session和token

https://zhuanlan.zhihu.com/p/25495290?utm_source=wechat_session&utm_medium=social 一.cookie 众所周知,HTTP 是一个无状态协议,所以客户端每次发出请求时,下一次请求无法得知上一次请求所包含的状态数据,如何能把一个用户的状态数据关联起来呢? 1.首先产生了 cookie 这门技术来解决这个问题,cookie 是 http 协议的一部分,它的处理分为如下几步: 1 服务器向客户端发送 cookie. 2 通常

IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token

本文引用了简书作者“骑小猪看流星”技术文章“Cookie.Session.Token那点事儿”的部分内容,感谢原作者. 1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动端IM)的数据流交换方式都是Http短连接+TCP或UDP长连接来实现.Http短连接主要用于从服务器读取各种持久化信息:比如用户信息.聊天历史记录.好友列表等等,长连接则是用于实时的聊天消息或指令的接收和发送. 作为IM系统中不可或缺的技术,Http短连的重要性无可替代,但Http作为传统互联网信