HTTP

共 17 篇文章。

给博客做个站内全文搜索:纯前端离线倒排索引的设计与取舍

• Development

最近给本站正在使用的Chaos主题 增加并逐步完善了一套在客户端进行的全文检索功能。

早年本站使用的是Google站内搜索,不过换成Hugo以后模板中的这个搜索框也就去掉了,毕竟现在也没什么人看blog了,写下去除了给自己留点记录之外,或多或少其实是一种行为艺术,而本站的读者基本上也都知道如何使用搜索引擎。

不过,有时我自己也会希望在blog里找一些以前的文章,虽然本站在Google搜索中的覆盖率还相当高,但有些时候新的文章会搜索不到,或是其实内容已经过时但仍然被索引。虽然在大语言模型的帮助下我整体重建了分类和标签的标注,但这些对于定位有时还是不太方便。

Hugo作为一个静态站点生成器,其实已经有了不少成熟的本地搜索方案。不过,今年都已经2026年了,vibe一个本地搜索并不困难。这里记录一下这个本地搜索的演化过程,以及在这个过程中的一些工程取舍。

阅读全文… ( 本文约 4441 字,阅读大致需要 9 分钟 )

作弊条:在 Nginx 中正确配置自定义 404 页面

• Cheatsheets

最近给 blog 增加了一个自定义的 404 错误页面。像 Hugo 这样的静态网站生成器在构建时,默认会把渲染好的 404 页面直接输出在网站根目录下,即 /404.html。

针对这类页面,我们通常希望:

  1. 当访客访问不存在的网址时,服务器呈现该页面的内容,并且 HTTP 状态码必须是 404。
  2. 当有人(或爬虫)直接在浏览器中访问 /404.html 时,同样呈现其内容,但返回的 HTTP 状态码依然必须是 404,而不是 200 OK。
阅读全文… ( 本文约 1258 字,阅读大致需要 3 分钟 )

启用 SPDY

• Networking

之前 Frank 同学提到了这个问题,所以今天花了些时间来配置。 nginx 对 SPDY 的支持是一项比较新的特性,只有在 1.3.x 版本以上才支持。FreeBSD 的 nginx-devel 默认并不启用 SPDY,需要在 make config 的阶段启用。

阅读全文… ( 本文约 131 字,阅读大致需要 1 分钟 )

为什么输入敏感数据(如登录信息)的页面也要做成 https?

• Security

有一种错误的观念是,对于不太敏感的内容(例如论坛之类),只要用 https 保护登录过程中提交密码的部分就足够了。例如国内非常流行的网易邮箱,很早以前便提供了"SSL安全登录"的选项,这样做显然是比完全不提供SSL登录选项的新浪邮箱要强多了[注1],但是仍然是不够的。

阅读全文… ( 本文约 467 字,阅读大致需要 1 分钟 )

网址缩短服务

• Development

前一段时间帮一个朋友做了一个非常简单的网址缩短服务,已经上线运行了一段时间,这里把当时设计的一些想法分享出来,等有时间我会把代码也发布出来,程序很简单,用 web.py 做的。

阅读全文… ( 本文约 866 字,阅读大致需要 2 分钟 )

portsnap镜像的另一种实现方法

• SysAdmin

FreeBSD 5.5和6.1开始内建了 portsnap,portsnap是一种新的 ports 套件同步机制。

与传统的 cvsup 更新方式相比, portsnap 有一些优越性:

  • 对于经常进行更新的情况,portsnap很快:portsnap包含索引和具体的ports两部分,在更新的时候它首先会更新索引,而具体的更新则是下载两次索引描述的文件之间的差异,因此可以大大节省带宽。
  • portsnap有数字签名:cvsup并不包含任何加密或数字签名的机制,而portsnap的公钥则是通过光盘发给每一台机器的,相对来说安全性要好的多。
  • portsnap使用HTTP协议:通常,企业防火墙并不会拦截HTTP。

早先,架设portsnap镜像的方法比较复杂。由于portsnap的设计,架设portsnap镜像所产生的流量,在通常情况下大约会是仅做portsnap操作的3000倍左右。

阅读全文… ( 本文约 445 字,阅读大致需要 1 分钟 )

关于大量静态页的想法

• Development

上次在MeetBSD的时候Tim提到了一种处理大量静态页的办法。今天看Squid开发人员在NYC的BSD活动上的一个演讲里面也介绍了各种方法处理I/O的区别。

阅读全文… ( 本文约 238 字,阅读大致需要 1 分钟 )

Apache发布新版本修正漏洞

• Security

Apache基金会今天发布了修正CVE-2006-3747的Apache httpd 1.3.37、2.0.59和2.2.3版本。

受CVE-2006-3747问题影响的版本:启用了mod_rewrite的Apache 1.3.28以上的所有1.3.x版本、2.0.46以上的所有2.0.x版本、所有2.2.0以上的2.2.x版本。

阅读全文… ( 本文约 465 字,阅读大致需要 1 分钟 )

www.delphij.net 改用 lighttpd

• Development

易帜了!易帜了!

经过测试发现,lighttpd的性能要比Apache好。虽然还不是很熟悉,但是这一步迟早要迈出去的。我觉得一个技术人员的生命终结的标志就是开始毫无理由地拒绝尝试新事物。

阅读全文… ( 本文约 153 字,阅读大致需要 1 分钟 )

Google WebAccelerator

• Distributed Computing

So it happens.

As the website states, it works by:

  • Sending your page requests through Google machines dedicated to handling Google Web Accelerator traffic.
  • Storing copies of frequently looked at pages to make them quickly accessible.
    Downloading only the updates if a web page has changed slightly since you last viewed it.
  • Prefetching certain pages onto your computer in advance.
  • Managing your Internet connection to reduce delays.
  • Compressing data before sending it to your computer.
阅读全文… ( 本文约 175 字,阅读大致需要 1 分钟 )