相同:
针对对象相同:两者都是针对单个用户(即单个浏览器)
不同:
-
存储位置不同:
Session 在服务器端, 一般在服务器的内存;Cookie 在客户端,一般是文件存储
-
使用限制不同:
Session存储过多会影响服务器性能; Cookie不应该存储敏感信息在客户端上。
Session用在负载均衡时,当下一次是不同的机器时就有问题; Cookie被浏览器禁用后也会有问题。
-
用途不同
Session一般用作服务器在不同页面之间的信息记录;Cookie一般用作服务器识别客户端浏览器/用户
当Cookie浏览器禁用, 此时只能通过url重写来代替cookie来记录客户端信息。 此时就类似session了 。
具体场景
对于多语言来说, 我们既要用cookie存储本地语言设置(此时不用登录用户就显示正确的ui),也要用把多语言设置和用户关联起来,这样不管用户换了多少个浏览器,都能正确显示。
FireFox查看cookie的方法: