22 Cookie

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 Tair(兼容Redis),内存型 2GB
简介: 路老师在知乎上分享PHP语言的知识,帮助大家入门并深入了解PHP。本文主要介绍Cookie的概念、功能及管理方法,包括如何创建、读取、删除Cookie,以及Cookie的生命周期等内容。纯干货,技术知识分享。

有胆量你就来跟着路老师卷起来! -- 纯干货,技术知识分享

路老师给大家分享PHP语言的知识了,旨在想让大家入门PHP,并深入了解PHP语言。

image.gif 编辑


上一篇文章结束了PDO后,本文我们准备说一下cookie。不过什么是cookie呢?当我们运行一个应用程序的时候,打开它并进行某些操作,然后关闭它,这个过程很像一次会话。计算机清楚你是谁,它知道何时启动应用程序,并在何时终止,但是在Internet上,存在一个问题:服务器不知道你是谁以及你做了什么,这是因为HTTP地址不能维持状态,所以需要通过在服务器上存储用户信息以便后面使用,这时候cookie和session就出现了,这两个可以临时保存会话信息,方便用户操作。

1 Cookie管理

Cookie是在HTTP协议下,服务器或者脚本维护客户工作站上信息的一种方式。Cookie的使用很普遍,许多提供个人化服务的网站都是利用Cookie来区别不同用户,以显示与用户相应的内容。有效地使用Cookie可以轻松完成很多复杂任务。

1.1 了解Cookie

Cookie是一种在远程浏览器端存储数据并以此来跟踪和识别用户的机制。简单地说,Cookie是Web服务器暂时存储在用户硬盘上的一个文本文件,并被Web浏览器读取。当用户再次访问Web网站时,网站通过读取Cookie文件记录这位访客的特定信息(如上次的访问位置花费的时间用户名密码等),从而迅速做出响应,如在网站免密登录。

比如你打开google浏览器的设置页面搜索cookie就会出现下列内容:

image.gif 编辑

1.2 Cookie的功能

Web服务器可以应用Cookie包含信息的任意性来筛选并经常性维护这些信息,并以此判断在HTTP传输中的状态。Cookie常用于以下3个方面:

  • 记录方可的某些信息。
  • 在页面之间传递变量
  • 将查看的网页存储在Cookie临时文件夹中,提高以后的浏览速度。

注意:一般不要用Cookie保存数据集或者其他量大的数据。并非所有的浏览器都支持Cookie,并且数据信息是以明文文本的形式保存在客户端计算机中,因此最好不要保存敏感的或者未加密的数据,否则会影响网络的安全性。

1.3 创建Cookie

在PHP中通过setcookie()函数创建Cookie。在创建Cookie之前必须了解的是,Cookie是HTTP头标的组成部分,而头标必须在页面其他内容之前发送,它必须最先输出。若在setcookie()函数前输出一个HTML标签或者echo语句,甚至一个空行都会导致程序出错。

bool setcookie(string name[,string value[,int expire[,string path[,string domain[,int secure]]]]]);

image.gif

其参数说明如下:

参数 说明 举例
name Cookie的变量名 可以通过$_COOKIE["cookiename"]调用变量名为cookiename的Cookie
value Cookie变量的值,该值保存在客户端,不能用来保存敏感数据 可以通过$_COOKIE["values"]获取名为values的值
expire Cookie的失效时间,expire是标准的UNIX时间标记,可以用time()函数获取,单位为秒 如果不设置Cookie失效时间,Cookie将永久有效,除非手动删除
path Cookie在服务器端的有效路径 如果该参数设置为“/”,则它在整个domain内有效,如果设置为“/11”,则它在domain下的/11目录及子目录内有效,默认是当前目录。
domain Cookie有效的域名 如果要使Cookie在xxx.com域名下的所有子域都有效,则domain的值应该设置为xxx.com
secure

指明Cookie是否仅通过安全的HTTPS,值为0或者1

如果值是1,则Cookie只能在HTTPS连接上有效;值为0,则Cookie在HTTP和HTTPS连接数都有效
<?php
  setcookie("mycookie",'www.phptest.lu');
  setcookie("mycookie2",'www.phptest.lu',time()+60);//有效时间设置为60秒
?>

image.gif

image.gif 编辑

1.4 读取Cookie

在PHP中可以直接通过超级全局数组$_COOKIE[]来获取客户端的Cookie的值。

<?php
date_default_timezone_set('PRC');
//如果cookie不存在,那就是第一次访问网站
if(!isset($_COOKIE["visittime"])){
    setcookie("visittime",date("Y-m-d H:i:s"));
    echo "欢迎首次访问nb的网站!";
    echo "<br>";
}else{
    setcookie("visittime",date("Y-m-d H:i:s"),time()+60);
     echo "您上次访问网站的时间为:".$_COOKIE["visittime"];
     echo "<br>";
}
 echo "您本次访问网站的时间为: ".date("Y-m-d H:i:s");
    
    
    
?>

image.gif

首次预览网站的时候显示这样:

image.gif 编辑

刷新页面如下: (等过了60秒后又会恢复到上个图的首次欢迎界面)

image.gif 编辑

1.5 删除Cookie

当Cookie被创建后,如果没有设置失效时间,Cookie文件会在关闭浏览器的时候被自动删除,如果要在关闭浏览器之前删除Cookie文件,有两种方法:一种是使用setcookie()函数删除,一种是在浏览器手动删除。

使用setcookie()函数删除cookie只需要在setcookie()函数中的第二个参数设置成为空值,将第三个参数Cookie的过期时间设置为小于系统当前时间即可。

setcookie("name","",time()-1);

image.gif

在上述代码中,time函数返回以秒表示的时间戳,把过期时间减去1就会得到过去的时间,从而可以实现删除Cookie的作用。

1.6 Cookie的生命周期

  • 如果Cookie不设定时间,就表示它的生命周期为浏览器会话的时间,只要关闭浏览器,cookie就会自动消失,这种叫会话Cookie,一般不保存在硬盘上,而是保存在内存中。
  • 如果设置了过期时间,那么浏览器就会把Cookie保存到硬盘,再次打开浏览器就会依然有效,直到它过期。
  • 虽然Cookie可以长期保存在客户端浏览器中,但是也不是一成不变的。因为浏览器最多允许存储300个Cookie文件,而且每个Cookie文件支持的最大容量是4KB;每个域名最多支持20个Cookie,如果达到限制,浏览器会随机自动删除Cookie。

下一篇 Cookie实现免密登录

相关文章
|
4天前
|
存储 人工智能 弹性计算
阿里云弹性计算_加速计算专场精华概览 | 2024云栖大会回顾
2024年9月19-21日,2024云栖大会在杭州云栖小镇举行,阿里云智能集团资深技术专家、异构计算产品技术负责人王超等多位产品、技术专家,共同带来了题为《AI Infra的前沿技术与应用实践》的专场session。本次专场重点介绍了阿里云AI Infra 产品架构与技术能力,及用户如何使用阿里云灵骏产品进行AI大模型开发、训练和应用。围绕当下大模型训练和推理的技术难点,专家们分享了如何在阿里云上实现稳定、高效、经济的大模型训练,并通过多个客户案例展示了云上大模型训练的显著优势。
|
7天前
|
存储 人工智能 调度
阿里云吴结生:高性能计算持续创新,响应数据+AI时代的多元化负载需求
在数字化转型的大潮中,每家公司都在积极探索如何利用数据驱动业务增长,而AI技术的快速发展更是加速了这一进程。
|
4天前
|
人工智能 运维 双11
2024阿里云双十一云资源购买指南(纯客观,无广)
2024年双十一,阿里云推出多项重磅优惠,特别针对新迁入云的企业和初创公司提供丰厚补贴。其中,36元一年的轻量应用服务器、1.95元/小时的16核60GB A10卡以及1元购域名等产品尤为值得关注。这些产品不仅价格亲民,还提供了丰富的功能和服务,非常适合个人开发者、学生及中小企业快速上手和部署应用。
|
13天前
|
人工智能 弹性计算 文字识别
基于阿里云文档智能和RAG快速构建企业"第二大脑"
在数字化转型的背景下,企业面临海量文档管理的挑战。传统的文档管理方式效率低下,难以满足业务需求。阿里云推出的文档智能(Document Mind)与检索增强生成(RAG)技术,通过自动化解析和智能检索,极大地提升了文档管理的效率和信息利用的价值。本文介绍了如何利用阿里云的解决方案,快速构建企业专属的“第二大脑”,助力企业在竞争中占据优势。
|
14天前
|
自然语言处理 数据可视化 前端开发
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
合合信息的智能文档处理“百宝箱”涵盖文档解析、向量化模型、测评工具等,解决了复杂文档解析、大模型问答幻觉、文档解析效果评估、知识库搭建、多语言文档翻译等问题。通过可视化解析工具 TextIn ParseX、向量化模型 acge-embedding 和文档解析测评工具 markdown_tester,百宝箱提升了文档处理的效率和精确度,适用于多种文档格式和语言环境,助力企业实现高效的信息管理和业务支持。
3936 2
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
|
4天前
|
算法 安全 网络安全
阿里云SSL证书双11精选,WoSign SSL国产证书优惠
2024阿里云11.11金秋云创季活动火热进行中,活动月期间(2024年11月01日至11月30日)通过折扣、叠加优惠券等多种方式,阿里云WoSign SSL证书实现优惠价格新低,DV SSL证书220元/年起,助力中小企业轻松实现HTTPS加密,保障数据传输安全。
499 3
阿里云SSL证书双11精选,WoSign SSL国产证书优惠
|
10天前
|
安全 数据建模 网络安全
2024阿里云双11,WoSign SSL证书优惠券使用攻略
2024阿里云“11.11金秋云创季”活动主会场,阿里云用户通过完成个人或企业实名认证,可以领取不同额度的满减优惠券,叠加折扣优惠。用户购买WoSign SSL证书,如何叠加才能更加优惠呢?
985 3
|
8天前
|
机器学习/深度学习 存储 人工智能
白话文讲解大模型| Attention is all you need
本文档旨在详细阐述当前主流的大模型技术架构如Transformer架构。我们将从技术概述、架构介绍到具体模型实现等多个角度进行讲解。通过本文档,我们期望为读者提供一个全面的理解,帮助大家掌握大模型的工作原理,增强与客户沟通的技术基础。本文档适合对大模型感兴趣的人员阅读。
397 16
白话文讲解大模型| Attention is all you need
|
8天前
|
算法 数据建模 网络安全
阿里云SSL证书2024双11优惠,WoSign DV证书220元/年起
2024阿里云11.11金秋云创季火热进行中,活动月期间(2024年11月01日至11月30日),阿里云SSL证书限时优惠,部分证书产品新老同享75折起;通过优惠折扣、叠加满减优惠券等多种方式,阿里云WoSign SSL证书将实现优惠价格新低,DV SSL证书220元/年起。
560 5
|
4天前
|
安全 网络安全
您有一份网络安全攻略待领取!!!
深入了解如何保护自己的云上资产,领取超酷的安全海报和定制鼠标垫,随时随地提醒你保持警惕!
694 1
您有一份网络安全攻略待领取!!!