cookie、session、token的区别(整理自网络)

COOKIE

COOKIE定义

cookie是web服务器保存在用户硬盘上的一段文本。
cookie允许一个web站点在用户的电脑上保存信息并随后再取回他。信息段以‘名/值’对(name-valuepairs的形式储存)

COOKIE工作机制

浏览器 服务器 1)request中cookie为空 2)生成key=value,set-cookie=value 浏览器保存value 下次访问时令cookie=value 再次访问request中header,cookie=value 浏览器 服务器

COOKIE的产生及保存

产生:服务器生成
保存:保存在浏览器

(不同浏览器访问同一个网站cookie值不同)

COOKIE参数

  • name:cookie的名字,创建之后,名字不可更改
  • value:cookie的值,为Unicode需要为字符串编码,为二进制数据则需base64编码
  • Max-Age:cookie失效时间,单位为秒。默认为-1,该参数为正数时,cookie在Max-Age后失效,为负数则为临时cookie,关闭浏览器即失效,浏览器不会保存该cookie,为0则删除该cookie。
  • path:本cookie的使用路径,当设置为"/sessionweb/“时,只有ContextPath为”/sessionweb/"的程序才可以访问该cookie;当设置为“/”,本域名下ContextPath都可以访问该cookie。
  • secure:告诉浏览器只能在https中访问,HTTP或其他无效。
  • httponly:此cookie只能在HTTP中使用,其它无效。
  • Domin:指定cookie所属域名。

注意

  • cookie只能保存少量数据,大概是4k大小,数量也有限制,不同浏览器的限制不同。
  • cookie可以被用户禁止
  • 不同浏览器访问同一个网站,产生的cookie不同。

SESSION

SESSION工作机制

浏览器 服务端 1)request中sessionid为空 2)生成session和一个与此相关的sessionid 将session保留,发送sessionid 浏览端保存sessionid 下次访问时带上 浏览器保存session 再次访问request带上sessionid,服务端按sessionid检索出对应的session使用 浏览器 服务端

SESSION的产生和保存

产生:服务端生成session和对应的sessionid
保存:客户端(浏览器)保存sessionid,服务端保存session
(会话中的重要信息也保存在session中)

SESSION的注意事项

过期

	客户端sessionid:同cookie客户端过期机制一样,没设置就是默认关浏览器就过期了。
	服务端session:默认30分钟,过期session存储的数据结构不可用。

管理

	session的管理是在容器中被管理的,容器即Tomcat、jetty等

缺点

  1. 依赖cookie

    寄生在cookie中,cookie被禁止,session也被禁止(可以通过URL重写摆脱cookie)

  2. 影响服务器
    访问量大—>服务器压力大,影响负载效果
    session内容复杂—>服务器内存溢出
    用户信息丢失/用户访问的不是同台服务器—>数据库丢失
    (session将用户信息存储在服务器中)

cookie和session的区别

session是存在服务器,cookie是存在客户端的
session无需cookie来支持和不会受浏览器端的配置影响,可记录每个访问者的信息,单独在服务器,比cookie安全
session存在内存,浏览器关了就死了;cookie以文档方式存在,能够修改其存活时间

TOKEN

待补充。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值