什么是 Token,Cookie,Session
Posted on Wed, 25 Dec 2024 10:34:06 +0800 by LiangMingJian
什么是 Token,Cookie,Session
什么是 Token
Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。推荐用设备号/设备mac地址作为Token或者使用session值作为Token。
Cookie 与 Session
首先我们需要知道HTTP协议的一个重要特点——“无状态”,数据交换完成,服务端和客户端就断开连接了,所以请求之间没有相关联系,每一个请求都是一个独立的新请求,为了实现状态保留的,保证前后正常通信,需要在客户端或服务器端存储与会话相关的数据,所以设计了这两个机制——Cookie与Session。
Cookie是由W3C组织提出的保存在客户端本地,方便下次访问服务端时直接放到请求报文头中,如登录的cookie,下次访问同一网站时,用户不必再次输入用户名和密码就已经直接登录。
Session是保存在服务器上用来记录用户状态的机制。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。Session在用户第一次访问服务器的时候自动创建。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。一般客户端和服务端通过一个SessionID来进行沟通,为了防止不同的用户之间出现冲突和重复,SessionID一般是一个32或者48个字节的随机字符串。
Cookie 与 Session 的区别
- 存放位置不同:cookie数据存放在客户端(浏览器);session数据放在服务器端,一般存储在内存中,但是SessionID存储在客户端cookie中。
- cookie由浏览器存储在本地,安全有风险,不宜存储敏感信息,如密码等。
- session会在一定时间内保存在服务器上,访问较多时,影响服务器性能。