HTTP协议中的Cookie和Session有什么作用?它们之间的区别是什么?代码举例讲解

Cookie和Session都是用于在HTTP协议中维持状态的机制。主要区别如下:

  1. 存储位置:Cookie存储在客户端浏览器中;Session存储在服务器上。
  2. 数据安全:Cookie不加密,数据安全性低;Session数据存储在服务器上,安全性高。
  3. 存储大小:Cookie数量和大小都受限;Session数据量较大。
  4. 生命周期:Cookie生命周期受浏览器限制;Session生命周期由服务器管理。

它们的主要作用是:

  1. 会话管理:识别用户和维持会话,实现网站个性化。
  2. 购物车:存储购物车商品信息,实现下订单等功能。
  3. 身份认证:结合登录信息实现身份认证,鉴权等。

代码示例:

Cookie设置和读取:

php
// 设置Cookie
setcookie('name', 'John', time() + 3600);

// 读取Cookie
echo $_COOKIE['name']; // John

Session设置和读取:

php 
// 开启Session
session_start();

// 设置Session
$_SESSION['name'] = 'John';

// 读取Session
echo $_SESSION['name']; // John

购物车示例:

php
// 添加商品到购物车(Cookie)
setcookie('cart', $itemString); 

// 获取购物车商品(Cookie)  
$cart = $_COOKIE['cart'];