cookie:
Cookie
<form action="finished" method="get">
name: <br/>
<input type="text" name="username"> <br/>
password: <br/>
<input type="password" name="password">
<button type="submit">提交</button>
</form>
用户名密码分别填入Tom和123456
GET /finished?username=Tom&password=123456
@RequestMapping(value = "/finished")
public ModelAndView finished(@RequestParam("username") String username,
@RequestParam("password") String password){
System.out.println("Received request parameters are: "+username+" "+password);
// 转发到 additional.html
return new ModelAndView("additional");
}
Cookie
浏览器存储
自动发送给服务器
Session
服务器存储
通过 Cookie 中的JSESSIONID找到
localStorage
浏览器存储
永久保存
不会自动发送给服务器
sessionStorage
浏览器存储
关闭标签页即删除
不会自动发送给服务器
sessionStorage和localStorage
-
存储大小不同
而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。 -
数据有效期不同
sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。 -
作用域不同
sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。Web Storage 支持事件通知机制,可以将数据更新的通知发送给监听者。Web Storage 的 api 接口使用更方便。 -
Web Storage带来的好处
1、减少网络流量:一旦数据保存在本地之后,就可以避免再向服务器请求数据,因此减少不必要的数据请求,减少数据在浏览器和服务器间不必要的来回传递。
2、快速显示数据:性能好,从本地读数据比通过网络从服务器上获得数据快得多,本地数据可以及时获得,再加上网页本身也可以有缓存,因此整个页面和数据都在本地的话,可以立即显示。
3、临时存储:很多时候数据只需要在用户浏览一组页面期间使用,关闭窗口后数据就可以丢弃了,这种情况使用sessionStorage非常方便