session和cookie一样都是为了记录用户的信息,实现识别用户,自动登录,显示购物车功能。
不同之处在于session的主体在服务器上,体量大,cookie主体在客户端上,体量小。
session会在响应报文中发给用户一个session id,用来唯一标识此用户,用户可以把session id发给服务器用来表明身份。Session对象在客户端第一次请求服务器的时候创建。Tomcat中session默认失效时间是20min。Session比cookie方便,但是对服务器压力大。
同时服务器会根据id创建一个session对象来保存用户信息。
利用getAttribute用来访问值
cookie是早于session出现的,cookie不可跨越域名,但是cookie存在一定的安全隐患,比如某黑客伪造成百度网站,浏览器会发给他cookie,然后黑客使用cookie访问百度,可以轻松登录你的账号密码,窥探你的隐私。这也是一种钓鱼攻击吧,配合上DNS伪造应该可以轻易做到的。javascript理论上可以操作浏览器读取cookie,但是这种能力被浏览器禁止了,限制了其权限。Cookie不提供修改操作,只能被覆盖,但是实际上修改的本质是可以用覆盖替代的,完全可以写一个函数实现修改,这个知识没什么用。