返回信息流一直对这个东西不是特别理解,这个session是一直存放在服务器端吗?还是一直在request里面,我们看了一下request里面确实有session这个东西,但是网上也有人说是存放在服务器的数据库里,有个django_sesssion数据库,当然确实有。还有就是,有了session之后可以弥补cookie的容易暴露用户信息的缺点,这点我不太明白,究竟是怎么回事??总之现在感觉实在是理解不了这是一种什么样子的机制??
这是一条镜像帖。来源:北邮人论坛 / python / #3773同步于 2014/10/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
问个django里面session的问题
ghoulchu
2014/10/22镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
session是存放在服务器端的,除非你使用cookie based backend。
cookie里存放的只是session token(或者说session id),每次的request也只包含session token,具体的数据是存放在服务器端的(database/cache/file based backend),HttpRequest.session只是为了方便你的后端代码读取session的数据,并不表示数据就在HttpRequest中。
综上所述,使用session机制的情况下,所有的用户数据都存放在服务器端,而不会暴露在request中,request里只传递session token(session id),因此能够提高安全性。
【 在 ghoulchu (ghoula) 的大作中提到: 】
: 标 题: 问个django里面session的问题
: 发信站: 北邮人论坛 (Wed Oct 22 15:33:06 2014), 站内
:
: 一直对这个东西不是特别理解,这个session是一直存放在服务器端吗?还是一直在request里面,我们看了一下request里面确实有session这个东西,但是网上也有人说是存放在服务器的数据库里,有个django_sesssion数据库,当然确实有。还有就是,有了session之后可以弥补cookie的容易暴露用户信息的缺点,这点我不太明白,究竟是怎么回事??总之现在感觉实在是理解不了这是一种什么样子的机制??
: --
:
: ※ 来源:·北邮人论坛 http://bbs.byr.cn·[FROM: 10.104.6.*]
【 在 Chon 的大作中提到: 】
: session是存放在服务器端的,除非你使用cookie based backend。
: cookie里存放的只是session token(或者说session id),每次的request也只包含session token,具体的数据是存放在服务器端的(database/cache/file based backend),HttpRequest.session只是为了方便你的后端代码读取session的数据,并不表示数据就在HttpRequest中。
: 综上所述,使用session机制的情况下,所有的用户数据都存放在服务器端,而不会暴露在request中,request里只传递session token(session id),因此能够提高安全性。
: ...................
大神,能提个过分的要求吗 把你QQ给我好不 有些问题我确实是查了好久也差不明白 周围也没有人懂 我保证不轻易打扰你 我问的问题绝对是我实在弄不会的时候才问你
【 在 Chon 的大作中提到: 】
: session是存放在服务器端的,除非你使用cookie based backend。
: cookie里存放的只是session token(或者说session id),每次的request也只包含session token,具体的数据是存放在服务器端的(database/cache/file based backend),HttpRequest.session只是为了方便你的后端代码读取session的数据,并不表示数据就在HttpRequest中。
: 综上所述,使用session机制的情况下,所有的用户数据都存放在服务器端,而不会暴露在request中,request里只传递session token(session id),因此能够提高安全性。
: ...................
大神,我再问你个问题 服务器数据库要存储用户的信息,那么就得知道过来的这个请求是哪个用户的,也就是要检测sessionid,那么是不是说,这个sessionid就是跟数据库中的某个用户是绑定的,这种sessionid--用户的对应关系,也是服务器端的服务程序来自行解析的,不需要我们来处理???一般,我们会在数据库django_session中存放用户的用户名和id,是不是就是根据这个,然后服务器就能够将sessionid和用户对应起来,当用户的请求发过来之后,根据这个sessionid找到了用户,然后再由我们来处理request中的数据,对用户数据库进行相应处理???
session顾名思义指的是「会话」,就是这若干个request所构成的会话。
当然你可以和用户进行绑定,但这不是绝对的。
比如同一个用户在不同的两台电脑上同时访问你的网站,你说对应的是一个session还是两个session?
【 在 ghoulchu (ghoula) 的大作中提到: 】
: 大神,我再问你个问题 服务器数据库要存储用户的信息,那么就得知道过来的这个请求是哪个用户的,也就是要检测sessionid,那么是不是说,这个sessionid就是跟数据库中的某个用户是绑定的,这种sessionid--用户的对应关系,也是服务器端的服务程序来自行解析的,不需�
【 在 Chon 的大作中提到: 】
: session顾名思义指的是「会话」,就是这若干个request所构成的会话。
: 当然你可以和用户进行绑定,但这不是绝对的。
: 比如同一个用户在不同的两台电脑上同时访问你的网站,你说对应的是一个session还是两个session?
: ...................
我现在就是有一个地方想不通,服务器确实是按照不同的session id 来区别不同的用户,比如说在request的cookie中,检测到一个sessionid,那么我们怎么根据这个sessionid来定位到某个具体的用户,还是说服务器就给我们定位了,不需要我们自己来编写代码??
【 在 Chon 的大作中提到: 】
: session顾名思义指的是「会话」,就是这若干个request所构成的会话。
: 当然你可以和用户进行绑定,但这不是绝对的。
: 比如同一个用户在不同的两台电脑上同时访问你的网站,你说对应的是一个session还是两个session?
: ...................
大神,我貌似知道怎么做了。
是不是浏览器的sessionid对应了服务器的数据库中的django_session,然后我们可以在这个django_session中存放了用户和用户id,然后通过User.objects.get('name')的方式找到那个用户,这样就将sessionid和具体的某个用户对应上了。
具体的实现方式看官方文档吧 https://docs.djangoproject.com/en/dev/topics/http/sessions/
【 在 ghoulchu (ghoula) 的大作中提到: 】
: 大神,我貌似知道怎么做了。
: 是不是浏览器的sessionid对应了服务器的数据库中的django_session,然后我们可以在这个django_session中存放了用户和用户id,然后通过User.objects.get('name')的方式找到那个用户,这样就将sessionid和具体的某个用户对应上了。
【 在 Chon 的大作中提到: 】
: 具体的实现方式看官方文档吧 https://docs.djangoproject.com/en/dev/topics/http/sessions/
:
好的