带你读《现代Javascript高级教程》十九、详解Cookie, Session, SessionStorage, LocalStorage(1)

简介: 带你读《现代Javascript高级教程》十九、详解Cookie, Session, SessionStorage, LocalStorage(1)

十九、详解Cookie, Session, SessionStorage, LocalStorage

引言

在Web开发中,数据的存储和管理是非常重要的。Cookie、Session、SessionStorage和LocalStorage是常见的Web存储解决方案。本文将详细介绍这些概念,比较它们的特点和用法,并提供相关的代码示例。

1. 什么是Cookie?

1属性

Cookie是一种在客户端存储数据的机制,它将数据以键值对的形式存储在用户的浏览器中。Cookie具有以下属性:

  • 名称和值:每个Cookie都有一个名称和对应的值,以键值对的形式表示。
  • 域(Domain):Cookie的域属性指定了可以访问Cookie的域名。默认情况下,Cookie的域属性设置为创建Cookie的页面的域名。
  • 路径(Path):Cookie的路径属性指定了可以访问Cookie的路径。默认情况下,Cookie的路径属性设置为创建Cookie的页面的路径。
  • 过期时间(Expires/Max-Age):Cookie的过期时间属性指定了Cookie的有效期限。可以通过设置Expires或Max-Age属性来定义过期时间。过期时间可以是一个具体的日期和时间,也可以是一个从当前时间开始的时间段。
  • 安全标志(Secure):Cookie的安全标志属性指定了是否只在通过HTTPS协议发送请求时才发送Cookie。
  • 同站点标志(SameSite):Cookie的同站点标志属性指定了是否限制Cookie只能在同一站点发送。可以设置为Strict(仅允许来自当前站点的请求携带Cookie)或Lax(允许部分跨站点请求携带Cookie)。

2应用场景

Cookie在Web开发中有多种应用场景,包括:

 

  • 会话管理:Cookie常用于存储会话标识符,以便在用户访问不同页面时保持会话状态。
  • 身份验证:Cookie可以用于存储用户的身份验证凭证或令牌,以便在用户下次访问时自动登录。
  • 个性化设置:Cookie可以用于存储用户的个性化首选项,例如语言偏好、主题设置等。
  • 追踪和分析:Cookie可以

用于追踪用户的行为和进行网站分析,例如记录用户访问的页面、点击的链接等。

以下是一个使用JavaScript创建和读取Cookie的示例:

 

// 设置Cookie
document.cookie = "username=John Doe; expires=Fri, 31 Dec 2023 23:59:59 GMT; path=/; secure; SameSite=Strict";
// 读取Cookieconst cookies = document.cookie.split("; ");for (let i = 0; i < cookies.length; i++) {
  const cookie = cookies[i].split("=");
  const name = cookie[0];
  const value = cookie[1];
  console.log(name + ": " + value);}

2. 什么是Session?

属性

Session是一种在服务器端存储和跟踪用户会话状态的机制。Session具有以下属性:

 

  • 存储位置:Session数据存储在服务器端的内存或持久化介质中,而不是存储在客户端。
  • 会话ID:每个会话都有一个唯一的会话ID,用于标识该会话。会话ID通常通过Cookie或URL参数发送给客户端,并在后续请求中用于识别会话。
  • 过期时间:Session可以设置过期时间,以控制会话的有效期。过期时间可以是一个具体的日期和时间,也可以是一个从会话创建时开始的时间段。
  • 安全性:Session的会话ID需要进行保护,以防止会话劫持和其他安全问题。


 

带你读《现代Javascript高级教程》十九、详解Cookie, Session, SessionStorage, LocalStorage(2)https://developer.aliyun.com/article/1349543?groupCode=tech_library

相关文章
|
2天前
|
前端开发 JavaScript
JavaScript新科技:PostCSS的安装和使用,2024年最新2024网易Web前端高级面试题总结
JavaScript新科技:PostCSS的安装和使用,2024年最新2024网易Web前端高级面试题总结
|
2天前
|
JavaScript 前端开发
web前端JS高阶面试题(1),高级开发工程师面试
web前端JS高阶面试题(1),高级开发工程师面试
|
5天前
|
JavaScript 前端开发 Java
【JavaEE】使Cookie与Session失效-Servlet上传文件操作-优化表白墙(下)
【JavaEE】使Cookie与Session失效-Servlet上传文件操作-优化表白墙
7 0
|
5天前
|
存储 前端开发 Java
【JavaEE】使Cookie与Session失效-Servlet上传文件操作-优化表白墙(上)
【JavaEE】使Cookie与Session失效-Servlet上传文件操作-优化表白墙
8 0
|
5天前
|
存储 JSON 前端开发
【JavaEE】Cookie与Session的前后端交互-表白墙登录设计
【JavaEE】Cookie与Session的前后端交互-表白墙登录设计
10 0
|
5天前
|
存储 安全 Java
JavaWeb中的Session和Cookie
本文介绍了JavaWeb中的会话跟踪技术,主要讨论了Cookie和Session的概念、用途、设置与获取方法以及生命周期。Cookie是客户端技术,用于在用户浏览器中存储信息,通常用于保持用户登录状态,有效期可设置。Session则保存在服务器端,用于跟踪用户状态,例如登录信息,生命周期可通过设置最大不活动时间控制。两者之间的主要区别在于数据存储位置和安全性,Cookie数据在客户端,可能存在安全风险,而Session数据在服务器端,相对较安全但会占用服务器资源。
|
5天前
|
存储 搜索推荐 安全
【Cookie和Session辨析】
【Cookie和Session辨析】
12 2
|
5天前
|
存储 缓存 安全
【PHP开发专栏】PHP Cookie与Session管理
【4月更文挑战第30天】本文介绍了PHP中的Cookie和Session管理。Cookie是服务器发送至客户端的数据,用于维持会话状态,可使用`setcookie()`设置和`$_COOKIE`访问。Session数据存于服务器,更安全且能存储更多数据,通过`session_start()`启动,`$_SESSION`数组操作。根据需求选择Cookie(跨会话共享)或Session(单会话存储)。实战中常组合使用,如Cookie记住登录状态,Session处理购物车。理解两者原理和应用场景能提升Web开发技能。
|
5天前
|
存储 安全 前端开发
禁用Cookie后Session还能用吗?
禁用Cookie后Session还能用吗?
26 1