计算机网路学习笔记「Cookie和Session的区别」
cookie和session都是用来跟踪浏览器用户身份的会话方式
Cookie的工作原理
-
当浏览器端第一次发送请求到服务器端时,服务器端创建Cookie
该Cookie中包含用户的信息
-
服务器端将该Cookie发送到浏览器端
-
浏览器端再次访问服务器端时会携带服务器端创建的Cookie
服务器端通过Cookie中携带的数据区分不同的用户
Session的工作原理
-
浏器端第一次发送请求到服务器端,服务器端创建一个Session,同时会创建一个特殊的Cookie
这个Cookie的name为JSESSIONID的固定值,value为session对象的ID
-
服务器端将该Cookie发送至浏览器端
-
浏览器端发送第\(N(N>1)\)次请求到服务器端,浏览器端访问服务器端时就会携带该name为JSESSIONID的Cookie对象
-
服务器端根据name为JSESSIONID的Cookie的value(sessionId),去查询Session对象,从而区分不同用户。
- 若name为JSESSIONID的Cookie不存在(关闭或更换浏览器),则重新去创建Session与特殊的Cookie
- 若name为JSESSIONID的Cookie存在,根据value中的SessionId去寻找session对象cookie数据保存在客户端,session数据保存在服务端。
- 若value为SessionId不存在(Session对象默认存活30分钟),则重新去创建Session与特殊的Cookie
- 若value为SessionId存在,返回session对象
Cookie和Session的区别
cookie数据保存在客户端,session数据保存在服务端。
Cookie | Session | |
---|---|---|
用户数据保存的位置 | 所有数据都保存在浏览器端 | 所有的数据都保存在服务器上 |
性能影响 | session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能 | 减轻服务器性能 |
过期方式 | 在cookie生成的时候设置进去 | 取决于服务器的设定 |
安全性 | cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗 | 安全 |