从零开始搭建一个 HTTPS 网站

我们都知道 HTTP 是非常不安全的,不安全的根源在于 HTTP 是明文传输。你在谷歌搜索了一个关键词(假设 Google 使用 HTTP),HTTP 数据包从你的计算机传送到服务器的过程中,中间经过的任意一个设备都可以轻松解析你的数据包,获取你的关键词,你的隐私毫无保障。

你的信息被人获取只是明文传输的其中一个问题。总体来说,明文传输有三个问题:

  • 窃听:第三方可以获取你的信息
  • 篡改:第三方可以修改你的信息
  • 冒充:第三方可以冒充你的身份
2016.09.05
使用 Dnsmasq 搭建内网 DNS 服务器

在日常开发过程中,我们经常要配置各种 host,比如公司内部的各种服务,或者测试项目的时候暂时把生产环境 URL 配置到本地上等等。一般采取的方法都是每个人手动编辑自己的 /etc/hosts 文件。这个做法有两个缺点:

  • 手动编辑 /etc/hosts 文件非常麻烦,需要 sudo
  • 工作量重复,团队内每个人都要配置一遍
2016.08.20
使用 Ngrok 实现内网穿透

很多时候,我们都有这样的需求:需要将本地正在开发的服务暴露在公网上,也就是从外网直接访问我们本机上的服务。正常情况下,这是办不到的,因为我们的本机并没有公网 IP,我们的本机处在内网当中。

这里需要顺手提及一个知识:NAT 穿透。我们的机器一般都在路由器的内网当中,IP 地址基本上都是 192.168.x.x 系列,我们并没有公网 IP,那么如何访问外网呢?我们打开浏览器访问 Google,Google 与我们主机之间如何通信?假设我们主机 IP 为 192.168.0.100,路由器 LAN IP 为 192.168.0.1,WAN IP 为 211.22.145.234(这是一个公网IP),Google 服务器 IP 为 74.125.204.101,详细通信流程如下。

2016.05.21
编写第一个 Chrome 插件 —— 图床on微博

之前写博客需要的图片全部都是本地存储,非常麻烦。流程如下:先用截图工具截图(QQ 截图就很好用),然后移动到目标文件夹,然后在 Markdown 中输入绝对路径(Jekyll 生成站点以后路径会变化,所以不能使用相对路径)。除了麻烦以外,在 Markdown 中编写时还是看不到图的,因为路径不对。

上次花点时间把所有的图片全部迁移到微博图床了。在 Chrome Web Store 中搜索了一下,选了新浪微博图床。功能是可以用的,不过有一些问题,最让我无法忍受的就是一点击按钮就会弹出一个 Chrome 的空白窗口,无法关闭,只有重启 Chrome 才行,这个实在是忍无可忍。

闲话不说了,总之我发现这是一次绝佳的自己造轮子的机会。自己造自己用多好玩,所以我准备自己写一个 Chrome 插件,来实现微博图床的功能。起什么名字好呢,恩,这真是一个世界难题。想了半天,决定叫做“图床on微博”吧,是的,我是 RoR 粉丝。

2016.04.06
Functional Reactive Programming 简介

推荐阅读:

HTML5Rocks 有一篇关于 Promise 的经典文章,通过引入这样一个问题来说明 Promise 的优越性,问题如下:

我们需要渲染一个故事,首先我们获取故事的 json,渲染标题 (story.heading),然后再根据其中的 charpter url,获取每一章的内容,并显示。中间出了任何问题,显示错误信息。

2016.03.20
JavaScript Infinite Currying

很久之前曾看到一个很有意思的 JS 问题,

// 定义一个函数 add,满足如下性质:
add(1) == 1
add(1)(2) == 3
add(1)(2)(3) == 6
...

var g = add(1)(2)
g(100) == 103
g(200) == 203
...
2016.01.17
Underhanded C, 有猫腻的 C

这一切,都要从这篇文章说起,Being Sneaky in C

通过这篇文章,我了解到,原来外国有一种比赛,叫做 Underhanded C(中文翻译:有猫腻的 C),完成规定的题目,要求是写出看起来毫无问题的代码,但是却偷偷的藏有 Bug 或者说后门。

这篇文章说的就是作者参与了这个比赛,以及他的解决方案。

2015.06.16
关于字符编码

很早之前就碰到过"乱码"这个现象,当时非常困惑,完全不能理解发生了什么。

上大学以后,虽然开始接触计算机,不过我就没看到过具体讲解字符编码的内容。对这个领域始终是感到非常模糊。

不过,最近好像豁然开朗了一下,感觉突然就明白了这个问题。

2014.04.24
Prev
3 / 3
Next