网站服务器会用session管理记录一个没有登录的用户访问么?

小白问题。
假如有用户A和用户B,访问了https://segmentfault.com/的首页,没有输入账号和密码登录。服务器也会生成一个session_ID_A和session_ID_B来管理保存两个访问么?

阅读 5k
4 个回答

是的,session id是一个唯一连接标识,在连接时被自动分配。
当连接服务器后,如果该连接没有包含session id,那么服务器会立即为该连接生产一个,然后返回给用户,后续的访问中浏览器都会保持发送这个id,用来告诉服务器这个访问和刚才的访问是同一个人。
至于登录,则是首次连接时该session id的登录状态是否,完成登录后该session id的登录状态为真。也就是说,如果没有session id,用户是无法完成登录的,因为服务器无法知道你是不是刚才完成登录行为的那个人。

会不会取决于后端代码逻辑。就PHP来说,默认是没有开启session会话的,需要手动调用session_start函数开启。而即便用户没有通过账密登录,依然可以使用session来管理保存用户状态,比如还可以基于ip地址来进行管理。所以说,服务器会不会用session管理记录一个未登录用户要看具体的业务逻辑。

session关联的是浏览器的访问请求, 并不是登录用户.

本身是通过一个随机cookie值来关联的. cookie是同一个, 就是同一个session, 和登录不登录没关系.

会不会取决于网站开发者想不想,这不是技术问题,而是业务问题

推荐问题