编写缓存 - 所有/快速响应HTTP代理

时间:2011-02-16 07:07:01

标签: http caching open-source proxy http-proxy

我是否可以使用任何开源HTTP缓存代理为自己提供一个良好的起点?

我想编写一个个人HTTP缓存代理来实现以下目的

  1. 即使远程网站速度很慢,也可立即投放内容
  2. 即使网络已关闭,也要提供内容
  3. 如果我想
  4. ,请允许我阅读旧内容

    为什么我要这样做?

    1. 我所在地区的互联网连接速度远非壮观。
    2. 我想缓存内容,即使HTTP标头告诉我不要
    3. 当我无法快速访问过去读过的内容时,我真的不喜欢它。
    4. 当网站删除有用的内容而我发现无法将其取回时,我感到无能为力
    5. 该项目包括

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

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

          1. 缓存所有内容不会造成安全问题,因为我是唯一一个对代理具有物理访问权限的人,代理服务器只为我服务(来自本地网络)
          2. 我认为这在技术上是可行的(如果您发现任何架构问题,请告诉我)
          3. 我还没有决定是否应该保留旧版本的网页。但鉴于我的日常带宽使用量只有1-2 GB,便宜的1TB硬盘可轻松容纳两年的数据!
          4. 我的计划有意义吗?有任何建议/异议/推荐吗?

1 个答案:

答案 0 :(得分:3)

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

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

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