V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  z3k3  ›  全部回复第 1 页 / 共 1 页
回复总数  14
@z3k3 补充:我一直用 Enhanced Mode ,在切换网络后会出现和你类似的问题。出现这个问题时,我就执行一下这个脚本。
我也经常遇到这个问题,问题应该是 corrupted routing table.

可以试试我的脚本 https://gist.github.com/c4710n/1c4377712339a896464ab64767e6ba8f
188 天前
回复了 shinonome 创建的主题 macOS 如何让 ctrl-m 可以成为真正的回车呢
@shinonome 做不到。
188 天前
回复了 shinonome 创建的主题 macOS 如何让 ctrl-m 可以成为真正的回车呢
用的 https://github.com/koekeishiya/skhd (brew 可以装), 配置文件里写:

```
# 你要的需求
ctrl - m : skhd -k 'return'

# 还可以绑定更多
ctrl - n: skhd -k 'down'
ctrl - p: skhd -k 'up'
ctrl - b: skhd -k 'left'
ctrl - f: skhd -k 'right'
ctrl - g: skhd -k 'escape'

# 还可以用来禁用一些系统级别的快捷键
cmd - q : true
cmd - h : true

# 还可以针对某个应用设置或者禁用一些快捷键
# 比如,这里在 emacs 里禁用了让人困扰的 font panel 快捷键
cmd - t [
"emacs" : true
* ~
]
```
193 天前
回复了 socradi 创建的主题 git 如何把全部 git commit 全部转成英文?
+ 修改 commit message 的关键词:git rebase reword
+ 翻译:可以用 ChatGPT
(这个需求并不常见,可能你得自己实现了。另外,如果有人和你一起协作的话,还是别了,rebase 不合适
觉得概念太混乱了,说说自己的理解。

---

这一切都起源于一个需求 —— 会话管理。

大家都知道 HTTP 协议是无状态的。为了能在 HTTP 协议之上保持状态,引入了 Session (会话)的概念,它只是一片「可以把无状态的 HTTP 请求关联起来」的数据。

需要注意,Session 只是一个抽象的概念,它不与特定实现绑定。在各种特定的实现里才涉及到那些名词 JWT 、JWE 、Cookie 、HTML5 Web Storage 等等。

会话管理需要从 4 个层次来设计。

## Session 的序列化方式

Session 在服务端与客户端之间传递,必然会涉及到序列化方式。序列化方式有很多:

*可以自定序列化方式,通常会涉及编码、加密、签名。
* 可以使用现成的标准,比如 JWT 、JWE 等。

## 服务端与客户端的协作模式

模式 1 - 服务端不存储 Session ,它将序列化后的 Session ,发送给客户端:
* 优点:
* 服务端不存储 Session ,默认就有很好的横向拓展性。
* 缺点:
* 通常情况下,客户端的存储空间受限(比如 Web 浏览器的 Cookie ),不适合 Session 相关的数据比较多的场景。

模式 2 - 服务端存储 Session ,它将序列化后 Session 标识符(而不是 Session ),发送给客户端:
* 优点:
* 服务端保存 Session ,没有存储空间受限的困扰。
* 服务端可以直接操作 Session 。
* 缺点:
* 在横向拓展上需要多付出一点努力(但也都有成熟的解决方案)。

## Session 在客户端中的存储方式

以 Web 浏览器为例,存储方式可以是:

* Cookie - 易受 CSRF 攻击,但可以使用 CSRF Token 防御。
* HTML5 Web Storage - 易受 XSS 攻击,受攻击面更大。

## Session 在服务端中的存储方式

存储方式可以是:
+ 关系性数据库:PostgreSQL 、MySQL 等。
+ 非关系型数据库:Redis 等。
+ 缓存:Memcached 、OTP 提供的 ETS 等。
+ ...

## 具体实现

知道了上面这些,就可以随便针对特定场景来做设计。

针对常见的 Web 应用:
+ Session 的序列化方式:base64 做编码,fernet 做加密,hmac 做签名(想偷懒的话,找个包调一下)。
+ 服务端与客户端的协作模式:没有复杂的需求,就选模式 1 吧。
+ Session 在客户端中的存储方式:既然是浏览器,就选 Cookie 。
+ Session 在服务端中的存储方式:选了模式 1 ,啥也不用存。

针对 SPA:
+ Session 的序列化方式:你们都说要 JWT 好,那就 JWT 。
+ 服务端与客户端的协作模式:偷懒,选模式 1 。
+ Session 在客户端中的存储方式:前端不会调 Cookie 的数据?那就用 HTML5 Web Storage 。
+ Session 在服务端中的存储方式:选了模式 1 ,啥也不用存。

针对复杂的 Web 应用(需要实现会话强制过期之类的功能):
+ Session 的序列化方式:找个包调一下。
+ 服务端与客户端的协作模式:不得不选模式 2 。
+ Session 在客户端中的存储方式:Cookie 。
+ Session 在服务端中的存储方式:业务数据库用了 PostgreSQL ,那就用它吧。

把概念的层次搞清楚,想怎么整都行。
363 天前
回复了 LxnChan 创建的主题 Linux 求各位大佬指条有关发行版选择的明路
@ZeroClover @moonjourney 两位同好,你们好!

> NixOS 用在服务器上很爽,用在自己电脑上也很棒。
> Nix 放在 macOS 上,搭配 nix-darwin 用来管理系统配置和开发环境也很棒。

---

如果 Po 主是负责企业生产环境的运维人员,应该选 Rocky Linux 或是 AlmaLinux 这类企业发行版:

1. 可以延续之前使用 CentOS 的使用习惯。
2. Po 主的工作给别人接手时,也不会太费力。

如果 Po 主是位开发,强力建议使用 NixOS:
* 声明式的系统管理方式,用了之后才会了解到它的好。(和传统的系统管理方式是完全不同的体验)
2023-03-17 09:57:29 +08:00
回复了 kaleocheng 创建的主题 Linux 终于把 centos 替换到了 nixos
@ZeroClover 同意。Reproducible 对于大规模部署太重要了。
2023-03-16 23:02:39 +08:00
回复了 kaleocheng 创建的主题 Linux 终于把 centos 替换到了 nixos
Welcome, my friend.
2022-12-22 15:47:47 +08:00
回复了 z3k3 创建的主题 云计算 大家请避坑 - HMBCloud 半月湾
@andyskaura 它宣称的媲美瓦工 GIA ?(然而并没有)
2022-12-21 19:10:41 +08:00
回复了 z3k3 创建的主题 云计算 大家请避坑 - HMBCloud 半月湾
@jeesk 老哥推荐推荐好线路
2022-12-21 15:43:19 +08:00
回复了 z3k3 创建的主题 云计算 大家请避坑 - HMBCloud 半月湾
@learningman affman 的测评里都写得很棒。反正我是被忽悠瘸了
2022-12-21 15:31:36 +08:00
回复了 z3k3 创建的主题 云计算 大家请避坑 - HMBCloud 半月湾
@leavic 感谢科普 affman
2022-12-21 15:21:40 +08:00
回复了 z3k3 创建的主题 云计算 大家请避坑 - HMBCloud 半月湾
@leavic 也是搜了。但只搜到了好话,没做好舆情监测啊…
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3707 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 21ms · UTC 00:51 · PVG 08:51 · LAX 17:51 · JFK 20:51
Developed with CodeLauncher
♥ Do have faith in what you're doing.