下面是“php中cookie与session的区别点总结”的详细攻略:
一、概述
- Cookie和Session都是Web开发中的常用会话技术,用于保存用户的状态信息;
- Cookie是在客户端(浏览器)保存,在每次HTTP请求中都会发送给服务器;
- Session是在服务端保存,客户端(浏览器)只保存一个来自服务端的Session ID,每次请求时将Session ID发送给服务器。
二、区别
1. 存储位置不同
- Cookie存储在客户端(浏览器);
- Session存储在服务端(Web服务器)。
2. 存储方式不同
- Cookie以文本文件的方式存储于客户端(浏览器);
- Session以数组的形式存储于服务端(Web服务器)。
3. 安全性不同
- Cookie的存储方式比较容易被窃取,因为它保存在客户端(浏览器);
- Session的存储方式比较安全,因为它保存在服务端(Web服务器),客户端(浏览器)只保存一个会话ID。但是,如果Web服务器被攻击,Session数据仍会被窃取。
4. 原理不同
- Cookie以HTTP响应头(Set-Cookie)的形式发送给客户端(浏览器),客户端将其保存;
- Session在客户端(浏览器)第一次请求时生成一个唯一的会话ID,用于标识这个会话,会话ID保存在客户端,后续的请求中都会带有此ID,服务器根据此ID从服务端中获取相应的Session数据。
三、示例
示例1:使用Cookie保存用户浏览器窗口尺寸信息
// 将用户浏览器窗口的尺寸保存在Cookie中
setcookie("user_screen_size", $_COOKIE["user_screen_size"] ?? $_SERVER["HTTP_USER_AGENT"], time()+3600*24*365, "/");
// 获取用户浏览器窗口的尺寸信息
if (isset($_COOKIE["user_screen_size"])) {
// 获取Cookie中保存的用户浏览器窗口的尺寸信息
$user_screen_size = $_COOKIE["user_screen_size"];
} else {
// 获取浏览器发送的User-Agent头,用于推断用户的浏览器窗口尺寸
$user_agent = $_SERVER["HTTP_USER_AGENT"];
// 推断用户的浏览器窗口尺寸
// ...
}
示例2:使用Session检查用户是否登录
// 开启Session
session_start();
// 验证用户输入的用户名和密码是否正确
if ($username == $correct_username && $password == $correct_password) {
$_SESSION["logged_in"] = true;
// 用户名和密码正确,跳转到登录后的页面
header("location: welcome.php");
} else {
// 用户名和密码不正确,显示错误信息
echo "用户名或密码不正确";
}
// 在其他页面中检查用户是否登录
session_start();
if (isset($_SESSION["logged_in"]) && $_SESSION["logged_in"] == true) {
// 用户已登录
} else {
// 用户未登录
}
以上就是关于“php中cookie与session的区别点总结”的完整攻略了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php中cookie与session的区别点总结 - Python技术站