当前位置: 首页 > news >正文

Cookie 是什么?

 Cookie 是什么?

cookie 常用于识别用户。cookie 是一种服务器留在用户计算机上的小文件。每当同一台计算机通过浏览器请求页面时,这台计算机将会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。

设置Cookie

在PHP中,你可以使用 setcookie() 函数来设置一个Cookie。这个函数必须在任何HTML输出之前调用,因为HTTP头(包括设置Cookie的头)必须在发送任何实际内容之前发送。

<?php
setcookie("user", "John Doe", time() + (86400 * 7)); // 86400 = 1天

上面的代码设置了一个名为 "user" 的Cookie,值为 "John Doe",并且这个Cookie将在7天后过期。time() + (86400 * 7) 计算了7天后的时间戳

读取Cookie

一旦设置了Cookie,你就可以通过全局数组 $_COOKIE 来访问它。

<?php
setcookie("user", "John Doe", time() + (86400 * 7)); // 86400 = 1天
if(isset($_COOKIE["user"])) {echo "User is " . $_COOKIE["user"];} else {echo "User is not set.";}

输出结果:

删除Cookie

要删除一个Cookie,你可以通过设置它的过期时间为过去的一个时间点来实现。注意,删除Cookie时,你必须设置与创建Cookie时相同的路径和域。

<?php
setcookie("user", "John Doe", time() + (86400 * 7)); // 86400 = 1天if(isset($_COOKIE["user"])) {echo "User is " . $_COOKIE["user"];} else {echo "User is not set.";}// 设置Cookie的过期时间为过去的时间
setcookie("user", "", time() - 3600);

然而,仅仅设置过期时间可能不足以删除所有Cookie,特别是如果它们有特定的路径或域设置。为了确保删除,你应该尽量使用与创建时相同的参数来调用 setcookie()。

Cookie的属性

setcookie() 函数还支持其他几个参数,允许你设置Cookie的路径、域、安全性(HTTPS)和HTTPOnly属性。

setcookie("TestCookie", $value, time() + 3600, "/path/", "example.com", true, true);

  1. 路径(/path/):Cookie有效的服务器上的路径。
  2. 域(example.com):Cookie有效的域。
  3. 安全性(true):如果设置为 true,则Cookie只能通过HTTPS发送。
  4. HTTPOnly(true):如果设置为 true,则Cookie不能通过客户端脚本访问(例如JavaScript)。这增加了安全性,因为它防止了跨站脚本(XSS)攻击中Cookie的窃取。

注意事项

  1. Cookie的大小限制通常是4KB。
  2. 浏览器对同一域名下的Cookie数量有限制(通常是20个)。
  3. Cookie是存储在客户端的,因此它们可以被用户查看和修改。不要依赖Cookie来存储敏感信息。
  4. 对于需要更高安全性的数据,应该考虑使用HTTPS和会话(Session)机制。

相关文章:

  • Python 与 MongoDB 深度融合:全流程数据库操作指南
  • 力扣——23合并升序链表
  • 使用listPersonalCertificates 命令列示WebSphere Application Server特定密钥库中的个人证书
  • 【Machine Learning Q and AI 读书笔记】- 03 小样本学习
  • “Everything“工具 是 Windows 上文件名搜索引擎神奇
  • xml 和 yaml 的区别
  • 关系型数据库设计指南
  • HOOK上瘾思维模型——AI与思维模型【88】
  • 【Linux系统】Linux进程信号(产生,保存信号)
  • 使用 Spring Boot Actuator 实现应用实时监控
  • 《TCP/IP详解 卷1:协议》之第九章:IP选路
  • 项目管理进阶:详解华为研发项目管理(IPD流程管理)【附全文阅读】
  • 机器视觉开发-打开摄像头
  • Selenium:模拟真实用户的爬虫
  • Python与深度学习:自动驾驶中的物体检测,如何让汽车“看懂”世界
  • 前端函数防抖(Debounce)完整讲解 - 从原理、应用到完整实现
  • Arduino程序函数详解与实际案例
  • Qt二维码demo
  • vscode 的空格和 tab 设置 与 Rime 自建词库
  • C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 18)
  • 长三角议事厅| AI作曲时代:长三角如何奏响数字音乐乐章
  • 特朗普称加总理将很快访美,白宫:不影响将加拿大打造成“第51个州”计划
  • 净海护渔,中国海警局直属第一局开展伏季休渔普法宣传活动
  • 遍体鳞伤就是击不倒,这是国米老男孩最后的倔强
  • 揭秘神舟十九号返回舱“软着陆”关键:4台发动机10毫秒内同时点火
  • 五部门:开展新就业形态劳动者劳动权益保障水平提升专项行动