做JavaWeb的都知道Session的底层是使用Cookie来实现的,服务器端会在本地文件中保存session信息,并将sessionID发给客户端(浏览器),浏览器就会把这个sessionID(准确一点的名字叫JSESSIONID)保存在客户端Cookie中,但是注意这个客户端的Cookie生存在内存中,而不是持久在硬盘上,它的生命周期在浏览器关闭之后就会失效。浏览器每次访问我们服务器的应用,都会将这个sessionID在请求中带上发送,服务器就可以根据这个sessionID知道当前是哪个用户了。所以,我们都说浏览器禁用Cookie之后session基本失效,虽然可以使用URL后面追加sessionID的方法解决,但是禁用之后带来的影响还是不小的。
我在这里记录下Chrome,Firefox,360浏览器禁用Cookie的方法:
Chrome(版本:63)
在高级->隐私设置和安全性
点进去内容设置
将下面这个选项勾掉即可
这个有个阻止第三方Cookie是没有选择的,如果只是选择阻止第三方不是禁用所有Cookie,只是阻止Cookie保存在硬盘(为Cookie设置生存期),并不会阻止掉保存在内存中的Cookie,我们的session还是可以用的。
Firefox(版本:59)
隐私与安全->历史记录
将 记录历史 改为使用自定义设置
这里接受来自网站的Cookie和接受第三方Cookie的区别和作用与Chrome是一样的
360浏览器(版本:9.1)
高级设置->网页设置
点进网页内容高级设置,这里也有个禁用Cookie和阻止第三方Cookie的选项,与Chrome相同