0

我可以使用任何开源 HTTP 缓存代理来给自己一个好的起点吗?

我想写一个个人的HTTP缓存代理来达到以下目的

  1. 即使远程站点速度很慢,也能立即提供内容
  2. 即使网络中断也能提供内容
  3. 如果我愿意,请允许我阅读旧内容

我为什么要这样做?

  1. 我所在地区的互联网连接速度远非惊人。
  2. 即使 HTTP 标头告诉我不要缓存,我也想缓存内容
  3. 当我无法快速访问我过去读过的内容时,我真的不喜欢它。
  4. 当一个网站删除了有用的内容并且我没有办法找回它时,我感到无能为力

该项目包括

  1. 在本地网络(或者可能在 localhost)上运行它的代理,以及
  2. 用于显示内容更新通知的浏览器插件或桌面程序

代理有什么特别之处?

  1. 浏览器发起 HTTP 请求
  2. 代理首先提供内容,如果它已经在缓存中
  3. 然后代理联系远程网站并检查内容是否已更新
  4. 如果内容已更新,则向桌面/浏览器发送通知(例如显示一个小弹出窗口或更改插件图标的颜色),然后在后台下载内容。
  5. 每次代理下载新内容时,将其保存到缓存中
  6. 让我选择是否加载更新的内容(如果没有,停止下载新内容;如果是,将新内容流式传输给我)
  7. 让我分配规则以始终/从不从某些网站加载新内容
  8. 如果代理发现(1)我总是想从某个网站加载新鲜内容,或(2)该网站的内容经常更新,则自动设置规则

笔记:

  1. 缓存所有内容不会造成安全问题,因为我是唯一一个可以物理访问代理的人,并且代理只为我服务(来自本地网络)
  2. 我认为这在技术上是可行的(如果您发现任何架构问题,请告诉我)
  3. 我还没有决定是否应该保留旧版本的网页。但考虑到我每天使用的带宽只有 1-2 GB,一个便宜的 1TB 硬盘可以轻松保存两年的数据!

我的计划有意义吗?有什么建议/反对/建议吗?

4

1 回答 1

3

看看 polipo: http ://www.pps.univ-paris-diderot.fr/~jch/software/polipo/

来源在这里: https ://github.com/jech/polipo

它是一个用 C 实现的缓存 Web 代理。它绝对可以帮助你。

于 2012-07-19T10:16:14.563 回答