sessionStorage 、localStorage 和 cookie 之间的区别 共同点:都是保存在浏览器端,且同源的。javascript
区别:java
1:cookie数据始终在同源的http请求中携带(即便不须要),即cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。cookie数据还有路径(path)的概念,能够限制cookie只属于某个路径下。api
2:存储大小限制也不一样,cookie数据不能超过4k,同时由于每次http请求都会携带cookie,因此cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,能够达到5M或更大。浏览器
3:数据有效期不一样,sessionStorage:仅在当前浏览器窗口关闭前有效,天然也就不可能持久保持;localStorage:始终有效,窗口或浏览器关闭也一直保存,所以用做持久数据;cookie只在设置的cookie过时时间以前一直有效,即便窗口或浏览器关闭。缓存
4:做用域不一样,sessionStorage不在不一样的浏览器窗口敏感词享,即便是同一个页面;localStorage在全部同源窗口中都是共享的;cookie也是在全部同源窗口中都是共享的。安全
5:Web Storage支持事件通知机制,能够将数据更新的通知发送给监听者。服务器
6:Web Storage 的 api 接口使用更方便。 GET和POST的区别: cookie
1.GET请求的数据会附在URL以后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连,如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。若是数据是英文字母/数字,原样发送,若是是空格,转换为+,若是是中文/其余字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。 POST把提交的数据则放置在是HTTP包的包体中。session
2."GET方式提交的数据最多只能是1024字节,理论上POST没有限制,可传较大量的数据,IIS4中最大为80KB,IIS5中为100KB"??!异步
3.在ASP中,服务端获取GET请求参数用Request.QueryString,获取POST请求参数用Request.Form。在JSP中,用request.getParameter(\"XXXX\")来获取,虽然jsp中也有request.getQueryString()方法,但使用起来比较麻烦,好比:传一个test.jsp?name=hyddd&password=hyddd,用request.getQueryString()获得的是:name=hyddd&password=hyddd。在PHP中,能够用$_GET和$_POST分别获取GET和POST中的数据,而$_REQUEST则能够获取GET和POST两种请求中的数据。值得注意的是,JSP中使用request和PHP中使用$_REQUEST都会有隐患,这个下次再写个文章总结。
4.POST的安全性要比GET的安全性高。注意:这里所说的安全性和上面GET提到的“安全”不是同个概念。上面“安全”的含义仅仅是不做数据修改,而这里安全的含义是真正的Security的含义,好比:经过GET提交数据,用户名和密码将明文出如今URL上,由于(1)登陆页面有可能被浏览器缓存,(2)其余人查看浏览器的历史纪录,那么别人就能够拿到你的帐号和密码了,除此以外,使用GET提交数据还可能会形成Cross-site request forgery攻击。 cookie机制。正统的cookie分发是经过扩展HTTP协议来实现的,服务器经过在HTTP的响应头中加上一行特殊的指示以提示浏览器按照指示生成相应的cookie。然而纯粹的客户端脚本如JavaScript或者VBScript也能够生成cookie。而cookie的使用是由浏览器按照必定的原则在后台自动发送给服务器的。浏览器检查全部存储的cookie,若是某个cookie所声明的做用范围大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器。 由于JS运行在浏览器中,是单线程的,每一个window一个JS线程,既然是单线程的,在某个特定的时刻只有特定的代码可以被执行,并阻塞其它的代码。而浏览器是事件驱动的(Event driven),浏览器中不少行为是异步(Asynchronized)的,会建立事件并放入执行队列中。javascript引擎是单线程处理它的任务队列,你能够理解成就是普通函数和回调函数构成的队列。当异步事件发生时,如mouse click, a timer firing, or an XMLHttpRequest completing(鼠标点击事件发生、定时器触发事件发生、XMLHttpRequest完成回调触发等),将他们放入执行队列,等待当前代码执行完成。 HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 以前,这些都是由 cookie 完成的。可是 cookie 不适合大量数据的存储,由于它们由每一个对服务器的请求来传递,这使得 cookie 速度很慢并且效率也不高。 localStorage和sessionStorage都具备相同的操做方法,例如setItem()、getItem()和removeItem()等 localStorage和sessionStorage的方法: setItem存储value 用途:将value存储到key字段 用法:.setItem( key, value)