HTTPS和接口安全 二

54 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第24天,点击查看活动详情

接HTTPS和接口安全一来继续讲解,上边简单的说了下鉴权机制都有哪些,接来下简单收下这些机制中有的区别。

1、Session与Cookies的区别

  • Cookie是存在客户端或者说为浏览器的进程内存中和客户端所在的机器硬盘上,Session存在服务器端,存在网站进程的内存中。

  • Cookie只能能够存储少量文本,大概4K大小,Session在初次设置Session的时候,会在Session池中实例化一个Session对象,以“sessionid”的值作为Key,同时会将Key以Cookie的形式保存到客户端的内存中,这个值大小一般没有限制,可以说为服务器端设置的大小,一般情况下可以直接当做没有限制。

  • Cookie是不能在不同浏览器之间共享,Session的作用域只存在当前浏览器的会话中,当浏览器关闭以后就会将“sessionid”丢失,但是服务器的Session对象并不会立即回收。Session一般会有一个过期的时间,服务器端设置,过了这个时间session就会失效。

2、Session与Token的区别****

  • Session是一种基于状态的机制,服务端需要维护大量的用户Session,占用大量的资源,服务端通过客户端请求Cookie中携带的Session ID是否在维护的Session池中来鉴别用户是否为登录状态,由于Cookie基于域名存储,不同域名的分布式系统往往还需要解决跨域问题。

  • Token是基于算法生成和验证的,服务端不需要存储Token值,只需要通过固定的算法和秘钥来验证Token即可。Token机制是无状态的,更利于分式系统使用。

  • Session和Token都有一定的有效期,都是比较安全的。