理解 http 反向代理

介绍了什么是反向代理, 并与直接访问及(正向)代理进行了对比, 为便于理解, 还举了现实中购物的例子作为比喻

要理解什么是 反向代理(reverse proxy) , 自然你得先知道什么是 正向代理(forward proxy).

另外需要说的是, 一般提到反向代理, 通常是指 http 反向代理, 但反向代理的范围可以更大, 比如 tcp 反向代理, 在这里, 不打算讨论 tcp 之类的反向代理, 当文中说到反向代理时, 指的就是 http 反向代理.

正向代理通常直接称为 代理(proxy), 无需强调它是正向的, 在 http 协议中, 代理即指正向代理.

继续阅读“理解 http 反向代理”

成为更好还是成为更有钱的程序员?

为什么你要选择成为更有钱的程序员?

如果你觉得这个题目有点标题党的味道, 那我也承认确实如此. 本来我打算取的名字是"如何成为一名更好的程序员", 但认真想一想, 怎样才算更好呢? 这个标准很模糊呀!

关于目标设定上有一个所谓的 SMART 原则,

来源于管理大师彼得·德鲁克(Peter Drucker)的《管理的实践(The Practice of Management》

其中, S 代表 Specific, 也即目标必须是 具体的.

显然, "更有钱" 比 "更好" 更为具体.

M 代表 Measurable, 也即目标是 可以衡量的.

显然, "更有钱" 又比 "更好" 更加好衡量.

继续阅读“成为更好还是成为更有钱的程序员?”

理解 MD5 消息摘要算法

介绍了 md5 算法及其特性, 重点介绍了其在密码存储方面的应用

MD5 算法相信很多开发人员都听说过, 一个最常见的使用到它的地方就是密码的存储.

当然, 很多人会说, 这个算法已经不太安全了, 确实如果你想更安全的保存密码, 则应该考虑其它更安全的算法, 不过这不属于此次讨论的主题.

什么是 MD5

MD5 是一种算法, MD5 中的 MD 代表 Message Digest, 也即信息摘要.

至于数字 5, 则因它是从更早的 MD4 算法改进而来, 因此得名 MD5.

所以 MD5 即是信息摘要算法第五版.

继续阅读“理解 MD5 消息摘要算法”