HTML概念:cookies session localStorage sessionStorage

前端之家收集整理的这篇文章主要介绍了HTML概念:cookies session localStorage sessionStorage前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

概念

Cookie是存储在客户端的小型文本文件,可以包含若干键值对,每个键值对可以设置过期时间(默认过期时间为关闭浏览器时)

cookie 是用来在本地存 某 网站数据的, 并且每次你访问它,浏览器会自动把它带上帮你提交给服务器。

session 是用来在服务器端标示客户端的,会在客户端cookie里设置 id即索引;在服务器存相关数据。

注意:(由于session是存在服务器端数据库的,所以的它的生命周期可以持久化,而不仅限于浏览器关闭的时间。)(后面有些说法较老)

cookies

  • 每个域名存储量比较小(各浏览器不同,大致4K)

  • 默认过期时间为关闭浏览器时

  • 会随请求发送到服务器,辨别用户身份

  • 有个数限制(各浏览器不同)

localStorage

  • 永久存储,始终有效,窗口或浏览器关闭也一直保存

  • 单个域名存储量比较大(推荐5MB,各浏览器不同)

  • 不会被发送到服务器上,用作持久数据

  • 总体数量无限制

sessionStorage

用户关闭浏览器窗口后,数据会被删除

Cookie和session对比

  • 应用场景

Cookie的典型应用场景是Remember Me服务,即用户的账户信息通过cookie的形式保存在客户端,当用户再次请求匹配的URL的时候,账户信息会被传送到服务端,交由相应的程序完成自动登录功能。当然也可以保存一些客户端信息,比如页面布局以及搜索历史等等。

Session的典型应用场景是用户登录某网站之后,将其登录信息放入session,在以后的每次请求中查询相应的登录信息以确保该用户合法。当然还是有购物车等等经典场景;

  • 安全性

cookie将信息保存在客户端,如果不进行加密的话,无疑会暴露一些隐私信息,安全性很差,一般情况下敏感信息是经过加密后存储在cookie中,但很容易就会被窃取。而session只会将信息存储在服务端,如果存储在文件数据库中,也有被窃取的可能,只是可能性比cookie小了太多。

Session安全性方面比较突出的是存在会话劫持的问题,这是一种安全威胁,这在下文会进行更详细的说明。总体来讲,session的安全性要高于cookie;

Cookie存储在客户端,消耗的是客户端的I/O和内存,而session存储在服务端,消耗的是服务端的资源。但是session对服务器造成的压力比较集中,而cookie很好地分散了资源消耗,就这点来说,cookie是要优于session的;

  • 时效性

Cookie可以通过设置有效期使其较长时间内存在于客户端,而session一般只有比较短的有效期(用户主动销毁session或关闭浏览器后引发超时);

  • 其他

Cookie的处理在开发中没有session方便。而且cookie在客户端是有数量和大小的限制的,而session的大小却只以硬件为限制,能存储的数据无疑大了太多。

猜你在找的程序笔记相关文章