HTML学习笔记(七) Web Storage

简介: HTML学习笔记(七) Web Storage

Web Storage 允许在浏览器保存用户数据,具体分为两种,一种是 localStorage,一种是 sessionStorage

对于客户端的存储方式,类似的还有早期乃至现在还广泛使用的 cookie,它们之间的区别如下:


cookie
localStorage sessionStorage
与服务端的通信 在每次请求中都会携带 不与服务端通信 不与服务端通信
数据的生命周期 设置的失效时间前有效 永久有效,除非主动删除 在浏览器关闭前有效
数据的作用范围 设置的域名及其子域名 在所有同源窗口之间共享 不能在不同窗口之间共享
储存的数据大小 一般不超过 4KB 一般在 5MB 左右 一般在 5MB 左右


Web Storage API 挂载在 window 对象上,window.localStoragewindow.sessionStorage

它们都是一个对象,常见的属性和方法如下:


  • length:获取保存的数据条数
  • setItem(key, value):保存数据
  • getItem(key):获取指定数据
  • removeItem(key):删除指定数据
  • clear():删除所有数据
  • key(index):根据索引获取键名


if (window.localStorage) {
    var storage = window.localStorage
    storage.setItem('username', 'admin')
    storage.setItem('password', '12345')
    let username = storage.getItem('username')
    let password = storage.getItem('password')
    console.log(username) // admin
    console.log(password) // 12345
    console.log(storage.length) // 2
    storage.removeItem('password')
    console.log(storage.length) // 1
    storage.clear()
}

最后顺便来补充一下 cookie 和 session 的相关知识


我们知道,HTTP 协议是无状态的,也就是说每次发出的请求都是独立的,这个时候就会造成很多的不便


比如,用户在一个请求中登陆之后,对于他发出的另外一个请求,服务器还是无法识别用户的身份


而 cookie 和 session 的出现都是为了记录用户的信息,从而在多次请求中识别用户的身份


cookie 的运作机制如下:


  • 服务器在响应中通过 set-cookie 头部要求浏览器设置 cookie
  • 浏览器在收到响应后,如果该浏览器支持使用 cookie,那么就会将 cookie 保存到文件
  • 浏览器在以后每次发出请求时,都会在请求中通过 cookie 头部带上 cookie 信息
  • 服务器在收到请求后,根据 cookie 信息识别用户身份


session 的运作机制如下:


  • 服务器创建一个唯一的标识发送给浏览器,并将这个标识和对应的 session 信息保存下来
  • 保存 session 信息的方式有三种,一种是保存在内存中,一种是保存在文件中,一种是保存在数据库


  • 浏览器在收到这个标识后,在以后每次发出请求时,都会带上这个标识
  • 带上标识的方式常见的有两种,一种是附加在 cookie 中,一种是附加在 URL 参数中


  • 服务器在收到请求后,根据标识找到对应的 session 信息识别用户身份


cookie 数据存放在浏览器上,session 数据存放在服务器上,所以相对而言使用 session 更为安全

但是,过多的 session 数据保存在服务器上,会影响服务器的性能,所以需要权衡选择


目录
相关文章
|
2月前
|
存储 Web App开发 移动开发
HTML5 Web 存储详解
HTML5 Web存储提供了两种客户端数据存储机制:**Local Storage**和**Session Storage**。Local Storage用于长期存储数据,即使关闭浏览器数据也依然存在,适用于保存用户偏好设置等信息。Session Storage则在标签或窗口关闭时清除数据,适合存储临时信息。两者均提供了简单的API进行数据的存取操作,但需要注意的是,Web存储并非加密存储,不应存放敏感信息。现代浏览器普遍支持Web存储,合理利用这两种存储方式可提升Web应用的用户体验。
|
2月前
|
存储 移动开发 大数据
HTML5 Web IndexedDB 数据库详解
IndexedDB 是一种高效的浏览器存储方案,允许在本地存储大量结构化数据,支持索引和事务,适用于需要离线和大数据处理的应用。它由数据库、对象仓库等组成,通过键值对存储数据,确保数据一致性和完整性。本介绍展示了如何创建、读取、更新和删除数据,以及事务和错误处理的最佳实践。
|
25天前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
32 6
|
25天前
|
前端开发 JavaScript UED
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势,包括样式表优化、DOM操作减少、图像优化等技术,并分析了电商网站的具体案例,强调了技术演进对Web性能的深远影响。
28 5
|
2月前
|
计算机视觉 Python
Flask学习笔记(六):基于Flask的摄像头-web显示代码(可直接使用)
这篇文章是关于如何使用Flask框架结合OpenCV库,通过电脑摄像头实现视频流在网页上的实时显示,并提供了单摄像头和多摄像头的实现方法。
119 2
Flask学习笔记(六):基于Flask的摄像头-web显示代码(可直接使用)
|
2月前
|
存储 移动开发 数据库
HTML5 Web IndexedDB 数据库常用数据存储类型
IndexedDB 支持多种数据存储类型,满足复杂数据结构的存储需求。它包括基本数据类型(如 Number、String、Boolean、Date)、对象(简单和嵌套对象)、数组、Blob(用于二进制数据如图像和视频)、ArrayBuffer 和 Typed Arrays(处理二进制数据)、结构化克隆(支持 Map 和 Set 等复杂对象),以及 JSON 数据。尽管不直接支持非序列化数据(如函数和 DOM 节点),但可以通过转换实现存储。开发者应根据具体需求选择合适的数据类型,以优化性能和使用体验。
|
2月前
|
移动开发 JavaScript 前端开发
HTML5 Web Workers详解
HTML5 Web Workers 允许在后台线程中运行 JavaScript,实现复杂计算而不影响用户界面,提升应用性能。其主要特性包括并行处理、异步通信、独立作用域及多数据类型支持。通过创建和使用 Worker 文件,如 `worker.js`,可执行后台任务,并与主线程通过消息传递机制通信。适用于数据处理、图像处理、复杂计算及网络请求并行等场景。需要注意的是,Web Workers 在浏览器兼容性、安全性限制、调试及资源消耗方面需特别关注。合理利用 Web Workers 可显著增强 Web 应用的流畅度和响应速度。
|
2月前
|
SQL 存储 移动开发
HTML5 Web SQL 数据库详解
Web SQL 数据库是 HTML5 中的一种本地存储技术,允许在浏览器中使用 SQL 语言操作本地数据,支持离线访问和事务处理,适用于缓存数据和小型应用。然而,其存储容量有限且仅部分现代浏览器支持,标准已不再积极维护,未来可能被 IndexedDB 和 localStorage 等技术取代。使用时需谨慎考虑兼容性和发展前景。
|
2月前
|
存储 移动开发 缓存
HTML5 Web 存储详解
HTML5 Web 存储包括 `localStorage` 和 `sessionStorage`,前者提供持久存储且无过期时间,后者仅在会话期间有效。两者均支持键值对形式存储数据,容量约为 5-10 MB。`localStorage` 适用于用户偏好设置、登录状态保持及离线应用缓存;`sessionStorage` 则用于临时数据如表单输入。数据以字符串形式存储,可通过 `JSON` 方法处理对象。由于数据存储于本地,不适合存放敏感信息。示例代码展示了如何使用按钮将输入框内容保存至 `localStorage` 并进行清除操作。
|
2月前
|
移动开发 前端开发 JavaScript
HTML与现代Web开发的不同技术
【10月更文挑战第11天】HTML与现代Web开发的不同技术
33 0