定义
cookie定义:保存在用户浏览器端的键值对
session定义:保存在服务器端的键值对
session原理
客户端发起登录请求,服务器端通过验证后,生成随机字符串返回给客户端,并且服务器端将此字符串和客户端信息
存储到本地数据库中,用于客户端下次登录验证。
由于服务器端保持状态的方案
在客户端也需要保存一个标识<用来定位该用户>,所以session机制需要借助于cookie机制来达到保存标识的目的
用途
如何根据用户的爱好定制站点网站可以使用cookie记录用户的意愿。网站只需仅将一个惟一的标识符发送给用户,由服务器端的数据库存储每个标识符对应的页面设置。
MORE
- 当session与网络协议相关联时,它又往往隐含了“面向连接”和/或“保持状态”.它的含义是指一类用来在客户端与服务器端之间保持状态的解决方案。有时候Session也用来指这种解决方案的存储结构
- 再次注意关闭浏览器只会使存储在客户端浏览器内存中的cookie失效,不会使服务器端的session对象失效。
- 存放在浏览器中的cookie发送时有
域限制
,是哪个域设置的cookie,发送请求(带有请求体)才会发送相应域的cookie
应用–django 中csrftoken验证过程
- django第一次响应来自某个客户端的请求时,后端随机产生一个token值,把这个token保存在SESSION中;同时,后端把这个token放到cookie中,返回响应界面to客户端;
- 下次前端发起请求的时候,把这个token值加入到请求数据或者头信息中,一起传给后端;
Cookies:{ csrftoken: xxxxx}
- 后端校验前端请求带过来的token,和SESSION里的token是否一致;
巨人的肩膀
彻底弄懂session,cookie,token