http协议:简单、快捷、无连接、无状态,多在请求之间是没有关联的,独立的。
一、cookie
什么是cookie?
cookie是服务器产生的存储在客户端的一小段文本信息。格式是字典,键值对。
cookie的分类?
会话级:保存内容,当浏览器关闭就会丢失
持久化:保存硬盘,只有当失效时间到了才会被清除
如何查看cookie?
包含name,value,domain,path,expires,size
cookie如何实现鉴权?
当客户端第一次访问服务器时,那么服务器就会产生cookie,然后通过响应头的方式在set- cookie传输到客户端,客户端从第2~n次请求都会自动带上这些cookie。
cookie的弱点?
cookie保存在客户端,对于一些敏感信息,用户名,密码,身份认证不安全
二,session
当用户首次访问服务器的时候,在服务器端保存一个sessionid,这个sessionid是经过加密的,然后通过cookie把这个sessionid保存到客户端,然后请求服务器的时候只发送sessionid。
弱点:解决cookie不安全问题,但是当用户量特别大的时候导致服务器崩溃。
服务器集群:请求IP捆绑、session复制、单点登录
三,token鉴权
当一个用户登陆后,就给他发送一个token令牌,下一次用户再次请求的时候,只需要带上这个令牌,token可以通过抓包抓取
加密:
对称加密:DES,AES
双钥加密:RSA
只加密不解密:MD5,SHA
token的分类:
access_token:有时间限制,限制15分钟内
refresh_token:一般15天
面试题cookie,session,token鉴权方式相同点和区别?
相同点:都是用于鉴权,都是服务器产生的
区别:
1,cookie存储在客户端,session存储在服务器,session的安全性比cookie高,所以一般情况下把重要信息放在session,把不重要的放cookie
2,session存在服务器内存,token存在服务器文件或数据库,token的好处是比session更节省服务器资源,token只需在服务器解密即可