主题:关于session的具体疑问
初拥创始者
[专家分:540] 发布于 2007-01-22 18:26:00
1
举个例子,我在登陆页定义了一个SESSION变量:
session("username")=rs("username"),那么是不是这个变量session("username")可以供我在这个网站上的任何一个页面引用?
2
书上说,定义了一个SESSION变量以后,只要用户不离开网站,那这个SESSION变量会一直存在,那么如何判断用户是否离开了网站了呢?离开以后这个变量的空间是不是就被释放掉了,完全消失,下次用户来的时候会被代码重新定义?
回复列表 (共16个回复)
沙发
wcc9 [专家分:130] 发布于 2007-01-22 19:48:00
是的..session可以提供相互链接的所有页面...
在默认情况下,如果没有用户请求,则服务器只保留session 20分钟..
可以通过timeout 来改变session
板凳
初拥创始者 [专家分:540] 发布于 2007-01-22 21:59:00
[quote]是的..session可以提供相互链接的所有页面...
在默认情况下,如果没有用户请求,则服务器只保留session 20分钟..
可以通过timeout 来改变session[/quote]
1 相互链接的所有页面具体是指哪些情况和类型?
2 刚才查了下,发现session变量是保存在客户端主机的内存上的,关闭浏览器或者session脚本过期后,即自动清除,但即使这样会不会还是不很安全?还有其他方法条件来限制他的有效与否?
3 楼
dreamlover [专家分:1170] 发布于 2007-01-22 22:17:00
session变量是保存在客户端主机的内存上??
4 楼
初拥创始者 [专家分:540] 发布于 2007-01-22 22:20:00
[quote]session变量是保存在客户端主机的内存上??[/quote]
是啊,我BAIDU一下以后发现是这样写的?有其他说法?
5 楼
dreamlover [专家分:1170] 发布于 2007-01-22 22:29:00
session应该在服务器端
cookie才是客户端
6 楼
初拥创始者 [专家分:540] 发布于 2007-01-22 22:32:00
我查到的是版本是,session在客户端的内存,而cookie如果不是临时cookie的话,那就在客户端的硬盘,只是存在与内存和硬盘的区别,但是我没有证实过这样对不对,只是想过,既然session如果可以通过关闭浏览器而让其被释放,那么就应该是在客户端
7 楼
longlong16 [专家分:10670] 发布于 2007-01-23 10:04:00
Session确实应该是在服务器端的,客户端只是和服务器端建立了连接 告诉服务器有个客户建立了session 所以服务器相应的分配sessionid给客户端 当客户端关闭 或session到期,服务器端自动关闭与此对应的session
8 楼
liulei001 [专家分:12820] 发布于 2007-01-23 11:16:00
1、建立Session后,在客户端确实是保存一些额外的东西,不过session本身的信息是存储在服务端的。这也是Session相对于Cookies更安全的原因。
2、建立Session后,客户端和服务端的关系是 [浏览器] <=> [服务器]。
所以用这个浏览器在服务端的任何一个页面都可以调用。即便你用这个浏览器访问了其他网站,在Session失效之前回到这个网站,还是可以正常使用。
9 楼
nckggood [专家分:1020] 发布于 2007-01-23 12:03:00
[quote]Session确实应该是在服务器端的,客户端只是和服务器端建立了连接 告诉服务器有个客户建立了session 所以服务器相应的分配sessionid给客户端 当客户端关闭 或session到期,服务器端自动关闭与此对应的session[/quote]
错,当客户端关闭后,服务器上的SESSION也是存在,直到其过期。是问服务器又怎么可能知道客户端是否关闭,起码ASP不能,所以服务器怎么可能会根据客户端的关闭事件来关闭其对应的SESSION。那不变成了客户端能远程控制服务器端?
10 楼
初拥创始者 [专家分:540] 发布于 2007-01-23 15:55:00
那这样的话,SESSION的消失与否只有靠时间来限制?
我来回复