答:浏览器禁用cookie后session不能正常使用。
cookie是一种客户端的会话技术,它是服务器存放在浏览器的一小份数据,浏览器以后每次访问该服务器的时候都会将这小份数据携带到服务器去。
session是服务器端的技术。服务器为每一个浏览器开辟一块内存空间,即session对象。由于session对象是每一个浏览器特有的,所以用户的记录可以存放在session对象中。
cookie存储在用户浏览器、session存储在web服务器。理论上cookie存储删除完全由用户控制,session存储删除完全由服务器控制。所以session不受用户控制,不受cookie影响。这种简单的理解是错误的。
服务器端调用了requet.getSession()的时候, 产生session对象。创建session的同时 生成sessionId(代表唯一sesssion的字符串), 服务器自动通过Cookie的方式写给浏览器。下次浏览器携带cookie(SessionId)找到对应的session使用。如果用户禁用cookie,则cookie(SessionId)无法存储,浏览器每次访问都不携带任何cookie,包括cookie(SessionId)。