session存放在服务器的内存中,session_id存放在服务器内存以及客户机中的cookie中
当用户发送请求的时候,服务器将用户cookie里面记录的session_id和服务器内存中存放的session_id进行比对,从而找到用户相对应的session进行 *** 作。
所以,如果客户端禁止了cookie的话,那么session也就没有办法使用。
session是在服务器端程序运行的过程中创建的,不同的语言实现的应用程序创建session的方法不同,比如在Java中我们是通过调用HttpServletRequest的getSession方法(使用true作为参数)创建的。
在创建session的时候,服务器也会为该session创建唯一的session_id,而这个session_id在随后的请求中可以用来重新获取已经创建了的session。
在session创建完成之后,就可以调用session相关的方法往session中增加内容了。但是这些内容只会保存在服务器内存中,只有session_id被发送到了客户端。
session会在以下的情况中被删除
程序的session会因为浏览器的关闭而删除么?
是不会的
参考:
https://www.cnblogs.com/woshimrf/p/5317776.html
SessionID 的途:
1、sessionID用来判断是同一次会话,至于会话用来做什么,看需求,题主说的判断用户是否登录只是其中的一个需求。
2、session是保存在服务器端的,它有一个生命期,客户端的cookie只是保存了id信息,关闭浏览器时,服务器端的session只要还在同一个生命期内还是同一次会话。
保存SessionID的方式:
1、一种技术叫做表单隐藏字段。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。
2、保存session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。
3、由于cookie可以被人为的禁止,必须有其它的机制以便在cookie被禁止时仍然能够session id传递回服务器,经常采用的一种技术叫做 URL重写,就是把session id附加在URL路径的后面,附加的方式也有两种,一种是作为URL路径的附加信息,另一种是作为查询字符串附加在 URL后面。网络在整个交互过程中终保持状态,就必须在每个客户端可能请求的路径后面都包含这个session id。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)