Laravel 探索之 Session 与 Cookie 结构
Session
Session
的属性及作用如下:
# sessionid, 要么是从请求的 cookie 中获取,要么是生成的
protected $id;
# session的name,在配置文件 session.php 中的 cookie item 决定
protected $name;
# 存放 session 信息,其中键名为
# flash.old 存放上一次请求保存进 session 的 $attributes 中的 key
# flash.new 存放 当前请求保存进 session 的 $attributes 中的 key
# _old_input 调用 flash() 存放当前请求的 input 数组;在请求中调用 old() 可以获取 session 中 __old_input 的键值对
protected $attributes = [];
# session 中的包集合, 关于包的这部分,用法不明
protected $bags = [];
# session start时会创建空包;保存元数据;
protected $metaBag;
# 保存包名与 session 中相关数据的对应关系;
protected $bagData = [];
# 保存 Session 信息的驱动(例如:文件或 Cache)
protected $handler;
# StartSession 中间件开始时设为 true, 处理完请求要返回的时候设为 false; 该状态值,第三方库获取会用到
protected $started = false;
Cookie
Cookie
模块有 EncryptCookies
中间件,用于解密请求中的 Cookies
信息,在返回响应时会加密 Cookie
信息;
请求携带的 cookie
保存在 \Symfony\Component\HttpFoundation\ParameterBag
集合,不会原路返回添加响应;
Symfony\Component\HttpFoundation\Cookie
结构:
# cookie 名称
protected $name;
# cookie 值
protected $value;
# 指示 cookie 将要发送到哪个域或那些域中。默认情况下,domain 会被设置为创建该 cookie 的页面所在的域名。
protected $domain;
# 指定了cookie何时不会再被发送到服务器端的;该选项所对应的值是一个格式为Wdy,DD-Mon--YYYY HH:MM:SS GMT的值;没有expires选项时,cookie的寿命仅限于单一的会话中。
protected $expire;
# 定义了Web服务器上哪些路径下的页面可获取服务器设置的Cookie。
protected $path;
# 该选项只是一个标记并且没有其它的值。一个secure cookie只有当请求是通过SSL和HTTPS创建时,才会发送到服务器端。用来标记是否是 https 请求
protected $secure;
# 一旦设定这个标记,通过documen.coookie则不能再访问该cookie。
protected $httpOnly;
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: