关于session,cookie,token的概念理解。
1.用户第一次向服务器发送请求的时候会在服务器自动创建一个session,服务器会向用户返回一个set-cookie字段,里面有session_id?
2.session刚创建时是一个空的列表?当用户的请求调用到类似于request.session['user_id']=user.id
这样的代码后,session中会添加内容?相当于起到记录用户行为的作用?
3.session中存储数据的格式是[{user_id:12345},{user_name:zhangsan}]类似于这样吗?
4.cookie和session有相同的有效期?如果没有超过有效期,用户行为会向同一个session里不断存数据?如果清除浏览器缓存是不是cookie就没了,用户再次访问服务器时需要创建新的session?
5.用户登录前每次刷新页面都会生成一个新的token?登录后,最后一次刷新时的token会存到cookie中去?这个token的作用是如果用户连续两次或两次以上提交完全相同内容的表单到服务端,服务端会去判断是否有某两次提交的内容和携带的token都否完全一致,如果完全一致,则第二次开始的提交信息都会被拦截?
6.cookie中只存储两样东西,一个session_id,另一个是token?session_id作为身份标识,用于在服务端的session中记录携带当前session_id的用户的行为?token作为身份标识用于防止同一身份提交内容完全相同的表单?
正在回答 回答被采纳积分+1
同学,你好,
1、服务器第一次接收到请求时,开辟了一块Session空间(创建了Session对象),同时生成一个Session id,并通过响应头的Set-Cookie向客户端发送要求设置cookie的响应; 客户端收到响应后,在本机客户端设置了cookie信息;
2、session是一个类字典对象,并不是列表,设置session后会先生成一个随机的字符串,并在django session表中存储该随机字符串与数据的记录,将随机的字符串发送给客户端浏览器(浏览器会设置一个键为sessionid来存放session值)
3、session类似于字典的存储格式
4、session,cookie的默认有效期为2周,清空缓存后就没有了。token值在用户退出前会一直有效的
5、注册成功后进行登录时会携带token值。会判断使用的token值是否相同,若相同则表示的是同一个用户操作的。
6、cookies存储在服务端,session存储在服务端。通过cookie存储一个sessionid,然后具体的数据则是保存在 session中。客户端发送的sessionid(存在与Cookie中)与服务端的sessionid匹配,若相同,则表示是同一用户
Token是服务端生成的一串字符串,唯一标识。是用户第一次登陆后,服务器生成一个token并将此token返回给客户端,以后客户端再次请求数据时只需要带上这个token,不需要再次带上用户名和密码
祝学习愉快~~~~
- 参与学习 人
- 提交作业 218 份
- 解答问题 3562 个
本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星