NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
http_cookie结构体 参考

HTTP Cookie结构 更多...

#include <http_session.hpp>

类 http_cookie 继承关系图:
[图例]

Public 成员函数

NEFORCE_NODISCARD string to_string () const
 序列化为Set-Cookie头
NEFORCE_NODISCARD bool is_valid () const noexcept
 检查Cookie是否有效
NEFORCE_NODISCARD bool is_expired () const noexcept
 检查Cookie是否已过期
void set_expires_from_now (seconds sec)
 设置从当前时间开始计算的过期时间
Public 成员函数 继承自 iobject< http_cookie >
NEFORCE_CONSTEXPR20 bool try_parse (const string_view str) noexcept
 尝试从字符串解析对象
Public 成员函数 继承自 istringify< http_cookie >
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 string to_string () const
 转换为字符串

静态 Public 成员函数

static NEFORCE_NODISCARD http_cookie parse (string_view header)
 解析Set-Cookie头
static NEFORCE_NODISCARD http_cookie parse (string_view header, string default_domain, string default_path)
 解析Set-Cookie头(带默认值)
静态 Public 成员函数 继承自 iobject< http_cookie >
static NEFORCE_NODISCARD constexpr http_cookie parse (const string_view str)
 从字符串解析对象

Public 属性

http_cookie_name name {}
 Cookie名称
string value {}
 Cookie值
string domain {}
 Domain
string path = "/"
 Path
seconds max_age {-1}
 Max-Age(-1表示会话Cookie)
bool secure = false
 Secure(仅HTTPS)
bool http_only = false
 HttpOnly(禁止JS)
string same_site {http_key::Strict()}
 SameSite
datetime expires {}
 Expires

详细描述

HTTP Cookie结构

表示一个HTTP Cookie,包含名称、值以及各种属性。 支持解析Set-Cookie头和序列化为Set-Cookie头格式。

Cookie属性说明:

  • Domain: 可访问该Cookie的域名
  • Path: 可访问该Cookie的路径
  • Max-Age: Cookie有效期,优先级高于Expires
  • Expires: Cookie过期时间
  • Secure: 仅在HTTPS连接中传输
  • HttpOnly: 禁止JavaScript访问
  • SameSite: 跨站请求策略(Strict/Lax/None)

使用示例:

// 解析Set-Cookie头
auto cookie = http_cookie::parse("sessionId=abc123; Path=/; HttpOnly; Max-Age=3600");
// 创建新Cookie
http_cookie new_cookie;
new_cookie.name = "token";
new_cookie.value = "xyz789";
new_cookie.path = "/api";
new_cookie.secure = true;
new_cookie.http_only = true;
new_cookie.set_expires_from_now(7200_s); // 2小时后过期
// 生成Set-Cookie头
string set_cookie_header = new_cookie.to_string();
// 验证Cookie
if (cookie.is_valid() && !cookie.is_expired()) {
// 使用Cookie
}

在文件 http_session.hpp62 行定义.

成员函数说明

◆ is_expired()

NEFORCE_NODISCARD bool http_cookie::is_expired ( ) const
noexcept

检查Cookie是否已过期

返回
已过期返回true

根据Max-Age或Expires判断Cookie是否已过期。 会话Cookie(max_age = -1)永不过期。

引用了 is_expired().

被这些函数引用 is_expired().

◆ is_valid()

NEFORCE_NODISCARD bool http_cookie::is_valid ( ) const
noexcept

检查Cookie是否有效

返回
有效返回true

◆ parse() [1/2]

NEFORCE_NODISCARD http_cookie http_cookie::parse ( string_view header)
static

解析Set-Cookie头

参数
headerSet-Cookie头的值
返回
解析出的Cookie对象

解析Set-Cookie头字符串,提取Cookie名称、值和属性。

◆ parse() [2/2]

NEFORCE_NODISCARD http_cookie http_cookie::parse ( string_view header,
string default_domain,
string default_path )
static

解析Set-Cookie头(带默认值)

参数
headerSet-Cookie头的值
default_domain默认Domain值
default_path默认Path值
返回
解析出的Cookie对象

解析Set-Cookie头,如果未指定Domain或Path,使用提供的默认值。

◆ set_expires_from_now()

void http_cookie::set_expires_from_now ( seconds sec)

设置从当前时间开始计算的过期时间

参数
sec有效期

设置Expires为当前时间 + seconds。 同时设置max_age = seconds。

引用了 set_expires_from_now().

被这些函数引用 set_expires_from_now().

◆ to_string()

NEFORCE_NODISCARD string http_cookie::to_string ( ) const

序列化为Set-Cookie头

返回
Set-Cookie头字符串

将Cookie对象转换为Set-Cookie头的格式。


该结构体的文档由以下文件生成: