PHP中cookie和session如何区分及各自应用场景和优缺点?

2026-04-06 16:520阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计969个文字,预计阅读时间需要4分钟。

PHP中cookie和session如何区分及各自应用场景和优缺点?

提到会话控制,很多人会想到Cookie和Session,那它们究竟是什么?你真的会用吗?几年前面试时,我遇到了这样一个问题:如何保证Session在创建后一小段时间内有效?

说到会话控制,大部人会想,那还不简单吗?不就是COOKIE和SESSION吗?

的确就是cookie和session,但是你真的会用吗?

几年前面试的时候我碰到了一个这样的问题:

如何保证session在1小时后失效?

当时我想这个还不简单,将gc_maxlifetime设置为3600不就行了。当时面试的人说,回答的不对,这样不能保证1小时后肯定失效。当然他也没和我说原因。后来我回去后,仔细查找了一番,才搞清楚。

回答这个问题前,先普及下cookie和session的知识。

COOKIE与SESSION的区别与联系

存储位置的不同:

  • cookie存储在客户端

  • session存放在服务端

他们之间的联系:

当服务端开启session后,即

session_start();

后,会生成一个唯一ID(session_id),并通过响应头告诉客户端。客户端拿到后,会将它保存在cookie中。当客户端再次发起请求时,会带上这个信息。服务端收到这个信息后,就会去存放session文件的目录去查找对应文件,找到后会去提取session信息。就是通过这样的机制,服务端识别了客户端的身份。

阅读全文

本文共计969个文字,预计阅读时间需要4分钟。

PHP中cookie和session如何区分及各自应用场景和优缺点?

提到会话控制,很多人会想到Cookie和Session,那它们究竟是什么?你真的会用吗?几年前面试时,我遇到了这样一个问题:如何保证Session在创建后一小段时间内有效?

说到会话控制,大部人会想,那还不简单吗?不就是COOKIE和SESSION吗?

的确就是cookie和session,但是你真的会用吗?

几年前面试的时候我碰到了一个这样的问题:

如何保证session在1小时后失效?

当时我想这个还不简单,将gc_maxlifetime设置为3600不就行了。当时面试的人说,回答的不对,这样不能保证1小时后肯定失效。当然他也没和我说原因。后来我回去后,仔细查找了一番,才搞清楚。

回答这个问题前,先普及下cookie和session的知识。

COOKIE与SESSION的区别与联系

存储位置的不同:

  • cookie存储在客户端

  • session存放在服务端

他们之间的联系:

当服务端开启session后,即

session_start();

后,会生成一个唯一ID(session_id),并通过响应头告诉客户端。客户端拿到后,会将它保存在cookie中。当客户端再次发起请求时,会带上这个信息。服务端收到这个信息后,就会去存放session文件的目录去查找对应文件,找到后会去提取session信息。就是通过这样的机制,服务端识别了客户端的身份。

阅读全文