其它
前端登录
1. Cookie + Session 登录
- 服务器创建 SessionId,保存在服务器端,并将其写入到客户端的 Cookie 中。
- 用户再次请求时,服务器通过比对 Cookie 中的 SessionId 和服务器端的 SessionId 来验证身份。
- 适用于简单的后端架构,但需要处理好安全问题。
2. Token 登录
- 服务器验证用户后创建 Token,返回给客户端保存。
- 用户再次请求时,带上 Token 进行身份验证。
- 适合大型分布式的后端架构,但已发出的 Token 如果想收回权限,处理起来比较麻烦。
3. SSO 单点登录
- 用户只需要在认证中心登录一次,就可以访问所有相互信任的应用系统。
- 认证中心进行身份验证,并给各个子系统下发授权。
- 适用于中大型企业,可以统一内部所有产品的登录方式。
4. OAuth 第三方登录
- 用户通过第三方网站(如微信、微博等)的账号登录应用。
- 第三方网站进行身份验证,然后给应用下发访问令牌。
- 简单易用,对用户和开发者都友好,但需要选择合适的第三方登录平台。
前端双 Token 无感刷新机制
- 前端在登录时,会同时获取两个 token,一个是 access token(短生命周期,用于业务请求),一个是 refresh token(长生命周期,用于刷新 access token)。
- 前端在每次请求时,会在响应拦截中通过状态码检查 access token 是否过期,如果过期,则使用 refresh token 调用新的接口获取新的 access token,然后重试原请求,用户对整个过程无感知。
- 如果 refresh token 也过期,则需要重新登录。
Unicode、UTF-8、UTF-16、UTF-32 的区别?
| 特征 | Unicode | UTF-8 | UTF-16 | UTF-32 |
|---|---|---|---|---|
| 编码方式 | 抽象字符集 | 变长编码 | 变长编码 | 定长编码 |
| 编码范围 | U+0000 - U+10FFFF | 0x00 - 0xFF | 0x0000 - 0xFFFF | 0x00000000 - 0xFFFFFFFF |
| 编码单元大小 | 可变 | 1 - 4 字节 | 2 或 4 字节 | 4 字节 |
| 兼容性 | 与大多数编程语言和操作系统兼容 | 与大多数编程语言和操作系统兼容 | 与大多数编程语言和操作系统兼容 | 与大多数编程语言和操作系统兼容 |
| 优点 | 可以表示世界上所有语言的字符 | 紧凑,适用于大多数文本 | 适用于表示较大的字符集 | 适用于表示非常大的字符集 |
| 缺点 | 编码单元大小可变,可能导致对齐问题 | 编码单元大小可变,可能导致对齐问题 | 编码单元大小固定,可能导致空间浪费 | 编码单元大小固定,可能导致空间浪费 |
冷冷的火花