有一个问题老想一明白(关于session的),在客户端cookie禁用的情况下,服务器是如何判断某一个客户对应的是那一个session呢?

时间:2023-02-11 20:17:19
最近看一本web编程方面的书中提到,
客户第一次访问一个web页面时,服务器引擎同时将这个ID号发送到客户端,存放在cookie中。这样sesison对象和客户之间就建立起了一一对应的关系。

那么,按上面的廉洁,如果客户端禁用了cookie,那不是连session也不能用吗?感觉好象有点不对,请高手指教???????

我记得以前看书时是说到session是不存放在服务器端时,当时心里就有一个疑问。那就是服务器如何将session与特定客户联系起来呢?  我觉得上面那个web编程书中提到的做法是对的,但是如果这样的话,那岂不是session的使用会被客户端的cookie设置所影响了吗?????


我之前发过一个贴子有两种相互矛盾的说法,请高手释疑!!!!!!!
解释1:
1. session是存放在服务器端的,在客户端它在Httphandler中.客户端禁用了cookie不会影响它的使用.

解释2:
2. 是的,因为Session是基于Cookies的,如果客户端禁止了Cookies的话Session确实不能使用,
但可以在Web.config中设置Cookieless=true;这样就会将SessionID保存到url中.

8 个解决方案

#1


第2种

#2


response.encodeURL("url") 

每次请求会追加该用户的jSessionID,通过该id判断

#3


楼上正解.

#4


session是存放在服务器中的,每个用户用的session,有一个Id值,这个ID值是要在客户端也存一份的,用户发送请求的时候会将这个id值一块发到服务器上,服务器要通过用户发过来的这个Id值,在服务器的一群session中找出该用户用的session,这个id值一般都选择用cookie的方式保存在客户端,因为用cookie比较方便,如果客户端不喜欢用cookie,那就只能用重写url的方式了

#5


看了上述见解,我总结一下,请大家看一下是否正确:

结论:
1. 即使客户端禁用cookie那么,不会影响服务端session的使用。

在1成立的条件下:
2. 在客户端禁用cookie时,有一种机制是每一次申请服务器链接时,会在客户端的请求URL上加上sesionID编码。


附加一个问题:
1. 那么在jsp中是自动处理还是要在那里设置才能实现sessionID加入到每一个链接请求中呢?(不好意思,JSP刚看没多久,不是很熟悉)

#6


所有的链接都使用response.encodeURL("url") 方式,包括serlvet中的转发

#7


顺便问一下
response.encodeURL("url") 和 response.encodeRedirectURL("url")
有什么区别

#8


大概清楚了!可能还要自己看一下书先!
结贴!

#1


第2种

#2


response.encodeURL("url") 

每次请求会追加该用户的jSessionID,通过该id判断

#3


楼上正解.

#4


session是存放在服务器中的,每个用户用的session,有一个Id值,这个ID值是要在客户端也存一份的,用户发送请求的时候会将这个id值一块发到服务器上,服务器要通过用户发过来的这个Id值,在服务器的一群session中找出该用户用的session,这个id值一般都选择用cookie的方式保存在客户端,因为用cookie比较方便,如果客户端不喜欢用cookie,那就只能用重写url的方式了

#5


看了上述见解,我总结一下,请大家看一下是否正确:

结论:
1. 即使客户端禁用cookie那么,不会影响服务端session的使用。

在1成立的条件下:
2. 在客户端禁用cookie时,有一种机制是每一次申请服务器链接时,会在客户端的请求URL上加上sesionID编码。


附加一个问题:
1. 那么在jsp中是自动处理还是要在那里设置才能实现sessionID加入到每一个链接请求中呢?(不好意思,JSP刚看没多久,不是很熟悉)

#6


所有的链接都使用response.encodeURL("url") 方式,包括serlvet中的转发

#7


顺便问一下
response.encodeURL("url") 和 response.encodeRedirectURL("url")
有什么区别

#8


大概清楚了!可能还要自己看一下书先!
结贴!