根据提供的文件信息,以下是对文件《Cookie,Session,Token详解.pdf》中知识点的详细解读:
1. Cookie的相关知识
1.1 Cookie不是缓存。它是由服务器创建并存储在客户端的一小段文本信息,通常以字典(键值对)的形式存在。
1.2 Cookie的分类可以分为会话级Cookie和持久化Cookie。会话级Cookie保存在内存中,浏览器关闭即失效;持久化Cookie保存在硬盘上,只有在设置的有效期(Max-Age)到达后才会失效。
1.3 Cookie的格式通常包含name(名称)、value(值)、domain(作用域)、path(路径)、expires(失效时间)、size(大小)等字段。
1.4 查看Cookie的方法有两种:一是查看当前网页的Cookie信息,二是查看所有网页的Cookie。
1.5 Cookie的数据传输原理基于HTTP协议。在客户端和服务器之间的通信中,请求头包含cookie信息,而响应头会包含set-cookie来传输新的或更新的Cookie信息给客户端。
1.6 Cookie的作用包括记住用户登录状态、购物车状态以及个性化设置等。此外,Cookie还可用于分析登录用户的行为。
1.7 Cookie的致命缺陷在于其存储在客户端,因此存储敏感信息(如用户名和密码)是不安全的。
2. Session的相关知识
2.1 Session是服务器生成的会话标识符(sessionid),默认生命周期为30分钟。服务器生成sessionid后,通过Cookie发送给客户端,客户端保存sessionid,用于后续与服务器的交互。
2.2 Session的存储在服务器内存中,服务器需要保存所有活跃的sessionid。Sessionid通常通过会话级Cookie来保存和传输,这样更安全。但Sessionid也存在被伪造的风险,因此在并发访问量大或安全性要求高的情况下,使用Token(令牌)作为替代方案。
3. Token的相关知识
3.1 Token是在用户登录后由服务器生成的一个令牌,其中包含了userid等信息,并保存在服务器的文本文件或数据库中。Token可以通过表单或其他方式传输,与服务器之间的验证通常基于加密的约定。
3.2 客户端与服务器之间的Token验证约定的加密方式包括对称加密(如DES、AES)、非对称加密(如RSA)以及只加密不需解密的方式(如MD5、SHA系列)。
3.3 在对安全性要求极高的项目中,光有Token是不够的,还需使用签名和数字证书来进行进一步的验证,尤其适用于接口测试。
4. Cookie、Session和Token的异同
4.1 三者的相同点在于,都是服务器产生并且用于身份验证(鉴权)的机制。
4.2 不同点在于存储位置和存储方式。Cookie存储在客户端,Session存储在服务器内存中,而Token则通常存储在服务器的数据库中。由于Token不依赖于Cookie和Session,它在存储上更节省服务器资源,服务器直接解密Token即可进行验证。
Cookie、Session和Token是Web开发中常用的三种用户身份验证机制。每种机制都有其特点和适用场景,开发者应根据项目的具体需求来选择合适的认证方式。
- 1
- 2
前往页