使用Seesion的场合:
(1)需要针对客户端跟踪,但是又不能放入客户端的敏感信息,比如之前说的验证码
(2)易失的,不必要放入数据库的少量数据,比如用户的查询条件
使用Cookie的场合:
(1)非敏感的,用于服务器跟踪自己的数据,比如说对用户使用偏好的优化,很多广告商据此来推送合适用户的广告。
(2)适合在客户端长时间保存,但是不重要的数据。因为cookie同样随时会被用户清除。同时,cookie无法随用户漫游,你不能用它存储业务,否则如果用户换一台电脑上网,找不到之前的订单了,那就麻烦了。
Session不适合存放大量的数据,这倒不是说Session存放在内存中,怕存不下,而是如果服务器使用了群集这样的技术,也就是使用很多计算机来同时处理用户的请求,Session在服务器之间同步是开销很大的。
当你需要存放的数据很多的时候,也不能使用cookie,因为cookie同样不能存大量的数据,不但如此,而且存放在cookie还增加了网络传输的开销。正确的做法是放入服务器的文件或者数据库中。