小白问题。
假如有用户A和用户B,访问了https://segmentfault.com/的首页,没有输入账号和密码登录。服务器也会生成一个session_ID_A和session_ID_B来管理保存两个访问么?
小白问题。
假如有用户A和用户B,访问了https://segmentfault.com/的首页,没有输入账号和密码登录。服务器也会生成一个session_ID_A和session_ID_B来管理保存两个访问么?
会不会取决于后端代码逻辑。就PHP来说,默认是没有开启session会话的,需要手动调用session_start函数开启。而即便用户没有通过账密登录,依然可以使用session来管理保存用户状态,比如还可以基于ip地址来进行管理。所以说,服务器会不会用session管理记录一个未登录用户要看具体的业务逻辑。
2 回答1.6k 阅读✓ 已解决
2 回答1.6k 阅读✓ 已解决
1 回答1.3k 阅读✓ 已解决
2 回答954 阅读✓ 已解决
4 回答1.4k 阅读
1 回答1k 阅读✓ 已解决
2 回答959 阅读✓ 已解决
是的,session id是一个唯一连接标识,在连接时被自动分配。
当连接服务器后,如果该连接没有包含session id,那么服务器会立即为该连接生产一个,然后返回给用户,后续的访问中浏览器都会保持发送这个id,用来告诉服务器这个访问和刚才的访问是同一个人。
至于登录,则是首次连接时该session id的登录状态是否,完成登录后该session id的登录状态为真。也就是说,如果没有session id,用户是无法完成登录的,因为服务器无法知道你是不是刚才完成登录行为的那个人。