php中cookie与session的区别点总结

教程操作环境:windows7系统、PHP7.1版、DELL G3电脑

无论是在系统运维还是 php 开发人员的面试中,经常会被问到 Session 和 Cookie 在 PHP 中的区别?下面我们就来总结一下:

Cookie 仅由客户端生成、管理并使用,PHP 只是发出指令要求客户端如何生成 Cookie、何时过期等,但是客户端不一定会按照 PHP 的指令办事。

Cookie 不是很安全,不法分子可以通过分析本地的 Cookie 进行 Cookie 欺骗。考虑到安全问题,建议将用户的重要信息存放在 Session 中,其它不重要但需要保留的信息可以存放在 Cookie 中。

Session 是用户进入某个网站到关闭浏览器这段时间的会话,默认以文件形式存在服务器磁盘中,所以设置过多的 Session 会影响磁盘的性能,也可以用 Memory 引擎存入 Mysql,因为内存引擎读写速度快,现在也可以指定用 Redis 来处理 Session,这样更快,效率更高。

Session 的收回机制是被动的,一般来说,一旦关闭浏览器 Session 也就被 PHP 自动回收了,但有时即使设置了过期时间并且关闭浏览器也不一定会删除 Session,比如设置多目录多层级保存 Session 时,这时需要通过 PHP 脚本手动删除 Session。

通常 Cookie 与 Session 是绑定的,即用户在没有禁用 Cookie 时,Cookie 一般会保存 Session ID 及 Session 生存周期,如果用户删除 Cookie 一般会退出系统;如果没有禁用 Cookie 关闭浏览器 Session 也会立即失效,要重新登录系统。

Cookie 与 Session 一般应于标识用户、权限认证、存储简单数据、还有就是利用 Cookie 实现单点登录。

Cookie 存储的数据在不同的浏览器会有不同的限制,一般在同一个域名下,Cookie 变量数量控制在 20 个以内,每个 Cookie 的值大小控制在 4kb 以内。Session 值没有大小和数量限制,但如果数量过多,会增大服务器的压力。另外,Cookie 保存的内容是字符串,而 Session 保存的数据是对象。

Session 不能区分路径,同一个用户在访问一个网站期间,所有的 Session 在任何一个地方都可以访问到;而 Cookie 中如果设置了路径参数,那么同一个网站中不同路径下的 Cookie 是不能互相访问的。

COOKIE和SESSION的区别

(1)存储位置:Cookie存储在客户端浏览器中,相对不安全;Session内容所在文件存储在服务器中,一般在根目录下的tmp文件夹中,相对更安全。

(2)数量和大小限制:Cookie存储的数据在不同的浏览器会有不同的限制,一般在同一个域名下,Cookie变量数量控制在20个以内,每个cookie值的大小控制在4kb以内。session值没有大小和数量限制,但如果数量过多,会增大服务器的压力。

(3)内容区别:cookie保存的内容是字符串,而服务器中的session保存的数据是对象。

(4)路径区别:session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到;而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。

内容扩展:

1、存放的位置

cookie保存在客户端,session保存在服务器端的文件系统/数据库/memcache等。

2、安全性

session因为保存有服务器端,安全性无疑更高一些。

3、网络传输量

cookie通过网络在客户端与服务器端传输,会占用一些带宽;而session保存在服务器端,不需要传输。

4、保存时间(生命周期),以20分钟为例

cookie的生命周期是累计的,从创建时就开始计算,20分钟后生命周期就结束,即cookie无效;

session的生命周期是间隔的。从创建时开始计时,如果20分钟内,没有访问过session,那么session会在20分钟时失效。而如果在20分钟内的任一时间访问过session,那么,session的生命周期将重新开始计算。

5、session和cookie的生效路径

cookie在默认情况下,cookie只在当前文件的目录下生效,一般需要设置setcookie的第四个参数为根目录,使得整个网站所在页面都生效;session默认情况下是根目录下生效(可以通过查看cookie的PHPSESSID信息知道,或者通过php.ini文件里的session.cookie_path来设置)。

到此这篇关于php中cookie与session的区别点总结的文章就介绍到这了,更多相关php中cookie与session有什么区别内容请搜索编程界以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程界!

--结束END--

本文标题: php中cookie与session的区别点总结

本文链接: https://www.lsjlt.com/news/37.html (转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢

  • php中cookie与session的区别点总结

    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑无论是在系统运维还是 PHP 开发人员的面试中,经常会被问到 Session 和 Cookie 在 PHP 中的区别?下面我们就来总结一下:Cookie 仅由客户端生成、管理并使用,PHP
    阅读数:801 php cookie session
  • php中cookie与session有什么区别

    区别:1、Cookie存储在浏览器中,相对不安全;而session存储在服务器中,相对更安全。2、Cookie存储的数据有数量和大小的限制,而session没有。3、cookie保存的数据是字符串类型,session保存的数据是对象类型。
    阅读数:314 php cookie session
  • php中echo、print和print_r的区别点及用法总结

    本教程操作环境:windows10系统、PHP7.1版,DELL G3电脑php中echo、print和print_r的区别是什么echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)print() 只
    阅读数:155 php echo print print_r
  • php中如果删除cookie

    在php中,可以利用setcookie()函数来删除cookie,只需要将该函数的第二个参数设置为空,或者第三个参数设置为小于系统的当前时间即可。
    阅读数:934 php cookie
  • PHP中如何修改Cookie

    本篇内容主要讲解“PHP中如何修改Cookie”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP中如何修改Cookie”吧!什么是 Cookie?cookie通常用于识别用户。cookie是服
    阅读数:923 php cookie
  • PHP Session ID的实现原理与实例

    这篇文章主要介绍了PHP Session ID的实现原理与实例,帮助大家更好的理解和学习使用PHP,感兴趣的朋友可以了解下
    阅读数:104 PHP Session ID PHP Session ID 原理
  • PHP同步与异步的区别

    PHP同步与异步的区别:1、传统的同步编程是一种请求响应模型,而异步编程就要重新考虑是否需要响应的问题;2、同步表示多个任务之间有先后顺序执行,而异步表示多个任务之间没有先后顺序,可以同时执行等等。
    阅读数:258 PHP
  • php中变量与常量的区别是什么

    区别:1、常量只能用define()函数或const关键字定义;而变量没有定义的关键字或函数,在赋值的时候被定义。2、变量名前用“$”修饰,常量名则不需要。3、变量值可以改变,常量值不可以。4、变量有全局和局部作用域,而常量只有全局作用域。
    阅读数:616 php 变量 常量
  • PHP Session 变量的使用方法详解与实例代码

    在php中Session经常用来验证用户注册或登录之后的验证了,下面我来总结session变量的一些常用实例与用法介绍
    阅读数:398 PHP Session
  • php setcookie怎么删除cookie

    php setcookie删除cookie的方法:1、创建一个PHP示例文件;2、通过“setcookie("TestCookie", "", time() - 3600);”方法删除一个cookie即可。
    阅读数:736 php 删除cookie
  • php curl怎么设置cookie

    php curl设置cookie的方法:1、创建PHP示例文件;2、通过curl_setopt函数设置cURL传输选项;3、在CURL中传递cookie即可。
    阅读数:655 php curl cookie
  • php cookie无法删除吗

    在PHP中,cookie可以删除;可以将cookie的有效期设置为当前时间以前来删除,因为删除cookie需要确保该cookie的有效期在过去,才能够触发浏览器的删除机制,语法为“setcookie("Cookie_name", "" , time()-1);”。本文操作环境:Windows10系统、PHP8.1版、Dell G3电脑php cookie无法删除吗php cookie可以删除要删除c
    阅读数:214 php
  • PHP中跳转与重定向的区别是什么

    区别:1、跳转是当前URL请求成功,重新请求新的URL;而重定向是当前的URL无效,被重新定位到新的URL上。2、在跳转中,浏览器会记录当前URL和新URL到历史记录中;而重定向不会。3、重定向是不能回退到当前URL的;而跳转可以。
    阅读数:864 php 重定向 跳转
  • php中类继承与接口继承的区别是什么

    在PHP中,类继承与接口继承的区别是:PHP类不支持多继承,也就是子类只能继承一个父类,但是支持多层次继承,而接口支持多继承,也就是接口可以继承一个或者多个接口。
    阅读数:803 PHP
  • php 怎么防止session 失效

    php防止session失效的方法:1、创建一个PHP示例文件;2、执行“$_SESSION['refresh'] = rand();”代码即可。
    阅读数:685 php session
  • php怎么清除指定session

    在PHP中,可以利用unset()函数和预定义变量“$_SESSION”来清除指定session,语法“unset($_SESSION['session名称']);”。
    阅读数:710 php session
  • PHP怎么禁止session超时

    PHP禁止session超时的方法:1、在PHP文件中设置“$_SESSION['refresh'] = rand();”;2、通过js定时器setInterval防止session过期即可。
    阅读数:688 PHP session
  • 浅析PHP分布式中Redis实现Session的方法

    本文介绍的是PHP分布式中Redis实现Session的方法,下面话不多说,直接先来看两个方法是什么方法一:找到配置文件php.ini,修改为下面内容,保存并重启服务session.save_handler = redissession
    阅读数:940 分布式 方法 PHP
  • php与ruby的区别是什么

    php与ruby的区别:1、ruby中函数的调用可以把括号省略,而PHP中不能把括号省略;2、ruby中提供proc、block,而PHP中没有提供;3、ruby中没有接口,也没有抽象类,而PHP中有接口,也有抽象类。
    阅读数:812 php
  • web与php的区别是什么

    web与php的区别:1、php主要用于后端处理数据和操作数据增删改查,而web前端用于把界面和数据显示给用户;2、php在服务器运行和解释,web前端主要用浏览器解决;3、php要考虑效率和安全性,web前端则要更注重可操作性和美观。
    阅读数:914 PHP