Session与cookie的作用都是为了保持访问用户与后端服务器的交互状态。
cookie通过把所有要保存的数据通过HTTP协议的头部从客户端传递到服务端,又从服务端再传回到客户端,所有的数据都存储在客户端的浏览器里。
但cookie可以通过插件被查看和修改,所有安全性不高;
相比较而言session的安全性要高的多,因为session是将数据保存在服务端,只是通过cookie传递一个sessionID而已,所有session更适合存储用户的隐私数据;
Cookie:
cookie的有效期:Cookie的maxAge决定着Cookie的有效期,单位为秒,Cookie中通过getMaxAge()方法和setMaxAge(int maxAge)方法来读写maxAge属性;
response对象提供的Cookie操作方法只要一个添加操作add(Cookie cookie)。要想修改Cookie只能使用一个同名的Cookie来覆盖原来的Cookie,而
删除一个Cookie对象也只能通过将maxAge设置为0才可以。
cookie不可跨域性:Cookie具有不可跨域名性。根据Cookie规范,浏览器访问Google只会携带Google的Cookie,而不会携带Baidu的Cookie。Google也只能操作Google
的Cookie,而不能操作Baidu的Cookie.
Sesson:
Session对象是javax.servlet.http.HttpSession接口的实例化对象,所以session只能应用在HTTP协议中。
服务器在为不同用户生成session的时候,为了以后能再认出这个用户,九尾每个用户生成一个sessionID,并将sessionID发送给不同的用户的浏览器中,在浏览器那边用一个cookie对象来存储(JSESSIONID即该sessionID);