跟踪方案和小语法
语法一:
case when cond1 then res1 [when cond2 then res2] else res end;
- 这种语法用于条件判断,其中
cond1和cond2是需要评估的条件。 - 如果
cond1为真,则执行res1。 - 如果
cond1为假,程序会继续检查cond2,如果cond2为真,则执行res2。 - 如果所有的
when条件都不满足,则执行else后面的res。
语法二(适用于等值匹配):
case expr when val1 then res1 [when val2 then res2] else res end;
- 这种语法用于等值匹配,其中
expr是要比较的表达式。 - 如果
expr等于val1,则执行res1。 - 如果
expr等于val2,则执行res2。 - 如果
expr不等于任何when子句中的值,则执行else后面的res。
if(expr, val1, val2)
这个函数接受三个参数:
expr:一个表达式,其结果将被评估为真或假。val1:如果expr为真(成立),则返回val1。val2:如果expr为假(不成立),则返回val2。
ifnull(expr, val1)
这个函数用于处理可能为 null 的值:
expr:需要检查是否为null的表达式。val1:如果expr不为null,则返回expr的值;如果expr为null,则返回val1。
示例
假设我们有一个变量 x,我们想根据 x 的值来决定输出什么:
if(x > 10, "x is greater than 10", "x is 10 or less")
如果 x 大于 10,输出将是 "x is greater than 10";否则,输出将是 "x is 10 or less"。
对于 ifnull,假设我们有一个可能为 null 的变量 y:
ifnull(y, "default value")
如果 y 不为 null,将返回 y 的值;如果 y 为 null,将返回 "default value"。
1. Cookie会话跟踪方案
原理:
- 通过HTTP响应头中的
Set-Cookie设置Cookie。 - 客户端在随后的请求中通过请求头中的
Cookie发送回服务器。
优缺点:
- 优点: 作为HTTP协议的一部分,Cookie的使用非常普遍和方便。
- 缺点:
- 移动端APP通常无法使用Cookie。
- 安全性问题,用户可以自行禁用Cookie。
- Cookie不能跨域使用。
2. Session会话跟踪方案
原理:
- Session的实现基于Cookie,通过
Set-Cookie在客户端存储一个Session ID,服务器使用这个ID来识别和管理会话。
优缺点:
- 优点: 数据存储在服务器端,相对安全。
- 缺点:
- 在服务器集群环境下,Session的共享和管理变得复杂。
- 继承了Cookie的所有缺点。
3. 令牌(Token)会话跟踪方案
优缺点:
- 优点:
- 支持PC端和移动端,兼容性好。
- 能够解决服务器集群环境下的认证问题。
- 减轻服务器端的存储压力,因为令牌通常存储在客户端。
- 缺点: 需要自行实现令牌的生成、验证和管理机制。
