session依赖于cookie

session和cookie两种方法存储区别基本都很清楚了。

但是面试中问到客户端是怎么知道打开浏览器的时候是如何知道去取服务端那个session的?

session的内容是存在服务端的。客服端怎么知道是取那个的呢?

 

看下session存储的执行过程:

当用户请求servlet,servlet会首先查看客户端cookie中是否有sessionID,如果有则证明是旧的会话,

那么就通过cookie将sessionID发送到服务器,服务器就会根据sessionID到服务器的内存中查找

session对象(因为每个session都会有一个sessionID来标识session对象),找到之后然后使用。

如果cookie中没有sessionID这证明是一个新的会话。服务器就会创建一个新的Session对象,

然后将SessionID存放早cookie中,通过cookie把sessionID发送到客户端。客户端下一次访问的时候,

就会将SessionID发送到服务器以便再次找到这个session对象,完成会话跟踪所以如果用户将cookie关闭

session也将会失效。session是依赖与cookie的。

与cookie的区别与联系:cookie在客户端保存用户的信息,而session在服务器上保存客户的信息

session依赖于cookie。如果用户关闭cookie,则session失效,

原因是sessionID无法从客户端传递到服务端,也不能从服务端传递到客户端.

 

 

这下就了然了。

你可能感兴趣的:(java学习)