在前端开发中,Cookie
是用于在客户端(浏览器)与服务器之间存储和交换小量数据的一种机制。通过 JavaScript 生成和管理 Cookie
,可以实现诸如用户身份验证、会话管理、个性化设置等功能。
name
和 value
:Cookie 的名称和值。expires
或 max-age
:Cookie 的有效期。path
:指定 Cookie 的适用路径。domain
:指定 Cookie 的适用域。secure
:指示浏览器仅通过 HTTPS 发送 Cookie。HttpOnly
:防止 JavaScript 访问该 Cookie,增强安全性。可以通过 document.cookie
属性来读取和设置 Cookie。以下是一个使用 JavaScript 创建 Cookie 的示例:
// 设置一个名为 "username" 的 Cookie,值为 "JohnDoe"
document.cookie = "username=JohnDoe; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/";
// 设置一个带有其他属性的 Cookie
document.cookie = "sessionId=abc123; expires=Wed, 21 Oct 2025 07:28:00 GMT; path=/; secure; samesite=lax";
由于 document.cookie
返回的是所有 Cookie 的字符串,需要解析才能获取特定的 Cookie 值:
function getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) return parts.pop().split(';').shift();
}
// 使用示例
const username = getCookie("username");
console.log(username); // 输出: JohnDoe
要删除一个 Cookie,可以将其 expires
属性设置为一个过去的时间:
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
HttpOnly
和 Secure
属性可以增强安全性。path
和 domain
。Secure
属性,确保页面通过 HTTPS 加载。HttpOnly
属性防止 JavaScript 访问。Secure
属性确保 Cookie 仅通过 HTTPS 传输。SameSite
属性来防止跨站请求伪造(CSRF)攻击。通过合理使用和管理 Cookie,可以提升用户体验和应用的安全性。
领取专属 10元无门槛券
手把手带您无忧上云