会话技术 cookie与session

会话技术 : 在同一台浏览器,的多次请求周期内,持久性存储数据一种技术! 将数据可以在多次请求周期内,传递存储下来
基础 : HTTP的无状态性。 B/S 架构基于HTTP协议进行数据交互。
HTTP请求/响应,是独立的,每次请求响应周期都是完全独立的

cookie技术基本原理 :

允许 服务器端程序(PHP) 在 浏览器上存储数据 的一种技术。
浏览器存储数据的技术,浏览器技术。
由服务器脚本(PHP)决定存储内容。
该数据存储好之后,典型的特征:在浏览器向该服务器发出请求时,会携带该服务器所存储的数据。
浏览器如何存储和如何携带,浏览器自身就实现了!和PHP没关系

//创建 Cookie  
setcookie(name, value, expire, path, domain); 

1.有效期(expire) :
	0:默认值,表示临时COOKIE。浏览器关闭(会话周期结束)时,COOKIE失效
通过unix时间戳(从1970年到现在的秒数,PHP函数time()来获取当前时间戳。)来设置COOKIE的有效期。
在设置COOKIE时,同时将COOKIE的有效期,告知(传输)到浏览器端 浏览器判断该COOKIE是否过期的
2.使用细节:
COOKIE仅仅支持字符串类型数据
当前脚本周期setcookie所设置的COOKIE变量,是不会出现在$_COOKIE中!
3.应用场景:
 购物车/长时间免登录/搜索记录
 需要长时间的存储会话的数据,通常使用COOKIE完成。

session技术
session技术基于COOKIE技术!
session会话机制是一种服务器端机制,它使用类似于哈希表(可能还有哈希表)的结构来保存信息。
当程序需要为客户端的请求创建会话时,服务器首先检查客户端的请求是否包含会话标识符(称为会话ID)。如果包含它,它先前已为此客户端创建了一个会话。服务器根据会话ID检索会话(无法检索,将创建新会话),如果客户端请求不包含会话ID,则为客户端创建会话并生成与会话关联的会话ID。 session id应该是一个既不重复也不容易被复制的字符串。会话ID将返回给客户端以保存此响应。
保存此会话ID(SESSION_ID)的方法可以是cookie,以便浏览器可以根据交互期间的规则自动将此标志用于服务器。

//使用

//开启后,所有关于session机制(生成session_id,)都由session机制(PHP提供的session相关功能)完成 
session_start();
//添加
$_SESSION['user'] = 'lisi';
$_SESSION['age'] = 18;
//修改
$_SESSION['user'] = 'zhangsan';
//删除
unset($_SESSION['age']);
//获取
var_dump($_SESSION['user']);

1.如何设置 session数据的属性?
设置COOKIE中session-ID这个COOKIE变量属性即可!
方案一:配置变量php.ini 
方案二:开启session之前使用函数进行配置(建议) Ini_set(配置项,值);用于设置某个PHP配置选项
对session相关属性设置:
ini_set('session.cookie_lifetime','3600');
ini_set('session.domain','');

Session,COOKIE联系和区别?
联系 : 都是会话技术。Session基于COOKIE,session-ID存储于COOKIE中!

对比点ciikiesession
存储位置浏览器端服务器端
安全性
大小限制没有
数据类型字符串全部
有效期使用长时间存储几乎不做持久化
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值