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 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!