IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> session和cookie区别详解 -> 正文阅读

[PHP知识库]session和cookie区别详解

什么是Cookie

????????HTTP协议是无状态协议,服务器本身无法判断用户身份,我们可以通过Cookie来跟踪用户状态,Cookie是一种在远程浏览器端存储数据并以此来跟踪和识别用户的机制。简单地说, Cookie是Web服务器暂时存储在用户硬盘上的一个文本文件,并随后被Web浏览器读取。一般情况下,Cookie通过HTTP headers从服务端返回到客户端。

????????PHP通过setcookie函数进行Cookie的设置,任何从浏览器发回的Cookie,PHP都会自动的将他存储在$_COOKIE的全局变量之中,因此我们可以通过$_COOKIE['key']的形式来读取某个Cookie值。

????????PHP中的Cookie具有非常广泛的使用,经常用来存储用户的登录信息,购物车等,且在使用会话Session时通常使用Cookie来存储会话id来识别用户,Cookie具备有效期,当有效期结束之后,Cookie会自动的从客户端删除。

Cookie的生命周期

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

什么是Session

????????Session 译为“会话”,其本义是指有始有终的一系列动作/消息,如打电话时从拿起电话拨号到挂断电话这一系列过程可以称为一个Session。

????????在计算机专业术语中, Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统所经过的时间。因此,,Session实际上是一个特定的时间概念。

Session的工作原理

  • 准备建立一个Session会话的时候,PHP会先查看请求中是否包含session_id,如果没有服务器会在自己的内存里创建一个随机且唯一的session_id。
  • 服务器会把这个session_id发送到浏览器保存,一般浏览器会把这个id保存在Cookie中。
  • 之后浏览器再去访问服务器时,都会携带这个在Cookie中存储的session_id,当关闭浏览器时,id会自动注销,重新打开登陆此页面,会再次生成一个随机且唯一的id。
  • 服务器可以通过session_id存放会话数据,这些数据时经过序列化后存放进去的,session_id就是Session存放数据的文件名。
  • 当浏览器访问服务器时,可以凭借自己的session_id到服务器中获取存放的信息。
  • 如果想销毁会话,可以删除会话中的数据,销毁会话文件。

Session的生命周期

  • 会话发起会生成一个session_id,默认浏览器关闭则id自动注销,重新打开浏览器会生成一个新的session_id。当然如果需要,可以通过Cookie来设置session_id的失效时间,以达到关闭浏览器后能找到原来session_id的目的。
  • Session生成后,只要用户继续访问,服务器就会更新Session的最后访问时间,并维护该Session。为防止内存溢出,服务器会定期检查Session的最后访问时间,如果这个时间超出Session设置的过期时间,服务器就会销毁这个Session,那么客户端即使把session_id又传上来,服务器也找不到它的Session了,只会再重新创建一个新的Session。

Session和Cookie的区别

  • Cookie数据存放在客户端浏览器上,Session数据存放在服务器上。
  • Cookie相对不是太安全,容易被盗用导致Cookie欺骗,考虑到安全应当使用Session。
  • 单个Cookie文件支持最大容量为4KB,每个域名最多支持20个Cookie,如果达到限制时,浏览器会自动地随机删除Cookies。而Session则没有这方面的限制。
  • Session是通过一个session_id进行用户识别,PHP默认情况下session_id是通过Cookie来保存的,因此从某种程度上来说,Session依赖于Cookie。但这不是绝对的,session_id也可以通过参数来实现,只要能将session_id传递到服务端进行识别的机制都可以使用Session。
  • Cookie保存在客户端,不占用服务器资源。Session保存在服务器端,如果并发访问量太大,会消耗大量的内存。

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-30 11:47:53  更:2021-08-30 11:48:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:12:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码