【问题标题】:Guidelines and best practices to make a proxy-friendly site制作代理友好型网站的指南和最佳实践
【发布时间】:2011-04-03 21:03:40
【问题描述】:

这是代理和插件开发人员的问题。

对于特定网站,通常的心态是“他们做出的改变会破坏我们的插件;我们改变逻辑以使其再次工作”

但是,如果对方也担心这个怎么办?如果我们想为一个代理友好的网站编制一套网站开发指南和最佳实践,你建议应该去做什么?想一想你必须破解的坚韧坚果。您还记得那些您希望网站开发人员以不同方式完成某个功能的时刻吗?怎么样?

由于这与编码有关,我认为它不应该归咎于服务器故障。

编辑: 阅读 Pekka 的评论后,我觉得我应该添加更多背景信息。

有一些网络代理脚本,例如 glype 和 PHProxy。由于该脚本应处理许多未知条件,因此它无法为许多站点提供服务。由于此类站点的数量是压倒性的,因此尝试使代理的内部逻辑足够复杂以处理这种巨大的变化是没有意义的。这是插件派上用场的地方。主脚本或 base 脚本实现了在每个站点基础上调用插件代码的机制。

因此,如果代理无法提供服务,比如说 facebook.com,顺便说一下,对挑战感兴趣的编码人员会进行一些研究和调试,以找出链中断的位置和原因以及应该是什么已解决问题。编码人员将他的修复程序实现为该特定站点的插件,用户可以将该插件放入他们的插件目录中。

但也会发生站点上的某些更改,并且该更改会导致插件再次中断。因此,赶上网站的最新变化是一个持续的匹配。具有讽刺意味的是,许多网站开发人员既不知道也不关心他们的设计决策可能对内容的代理服务能力产生的影响。但有些网站有充分的理由关心访问者通过代理访问其内容的能力。不想在这里涉足政治,所以我让你猜猜为什么这对某些网站可能很重要。

这个问题试图利用代理和插件作者的集体知识和经验来制定一套使网站代理友好的指南。

我最初没有标记问题 php,因为它主要涉及站点的输出,而不是您如何生成它。但是决定这样标记它,因为它会提高问题的可见性,并且标记也​​可以在目标受众的基础上得到证明。我也在制作这个社区 wiki,所以如果你觉得应该删除 php 标签,就这样做吧。

【问题讨论】:

  • 可能只有我一个人,但我不知道你在说什么:什么是代理插件?什么是基本脚本? (同样,这可能是我不知道的领域,在这种情况下,我很抱歉。)
  • @Pekka - 感谢您指出这一点。我添加了一些信息以使其清楚。
  • 非常非常有趣的话题,很多人都关心。但是,我现在认为,有了额外的(好的)解释,它可能包含太多的文字来引起注意。我会更多地关注中心问题,并从开发过程中剔除内部问题:无论如何,这就是有知识的人会想出的。 (如果他们发现问题 - 像这样的问题 damn 很难标记,因为代理永远不会编写 使用他们所涉及的技术......我会添加 http 和可能是 Apache,可能是一些领先的代理产品的名称)
  • 我同意,它太长了。但这对我来说是新鲜的,我很难看到我应该剪掉什么。我会在几天后重新审视它以获得更好的判断,但与此同时,其他人可能也可以这样做,将文本分成几个部分并给它们命名也有助于提高可读性。
  • 我真的认为这是一个有趣的问题,可惜没有人回答。添加了赏金:)

标签: php javascript apache proxy


【解决方案1】:

这是一个有趣的问题,我认为没有一个好的通用解决方案。基本上,您希望您的网站内容可以由您无法控制并且可能不了解转换的第三方进行转换。

解决此问题的传统方法是使用已发布的 API,该 API 允许第三方以不依赖屏幕抓取的受控方式查询他们想要的数据。 API 通常只会公开部分功能,通常是因为网站需要用户查看页面才能产生广告收入(或其他类型的收入)。

您可以生成非常简单的页面,实际上使用 HTML API,并使用 Javascript 和 CSS 使页面更加用户友好。但是,这可能不适用于大多数站点。但 jQuery 和其他人大肆宣扬的“渐进式增强”方法也遵循相同的路线:提供基本的语义内容,并通过 JS 和 CSS 添加功能和魅力。

您可以使用微格式使某些页面内容更易于访问。您应该使用语义 HTML 并在页面元素上放置大量类和 id,以便插件作者可以找到他们需要的相关内容。

令我震惊的是,无论这些代理需要学习如何解析您的页面至少一次。你可以记录这个过程(也许发布一个或两个插件)。

我认为,当您发布网站的新版本时,您无法避免强制插件作者重新编码。您可以制定一个测试期政策,在此期间网站的旧版本和新版本都可用,这将使插件作者有机会在不中断用户服务的情况下更新他们的插件。

【讨论】:

  • 这主要适用于我们希望我们的内容可用于自动报废和网格划分的情况。网络代理(又名匿名代理)的目的不是从我们的内容中获取信息,它们在那里为内容提供了一个侧门,否则观众无法使用。因此,他们尝试提供与代表相同的数据代理用户。但最后的建议(测试期)是一个很好的建议。
  • 我需要我的赏金来解决另一个问题,我认为这是我们将得到的最佳答案 :) 抓住这个,Shiny and New 先生 :)
【解决方案2】:

我不确定你是否关心这件事,但目前我只记得在代理友好网站上工作时应该注意的两件事。一个是可以影响在代理后访问的站点的标头,另一个是 IP 检测。缓存控制标头(公共/私有)和其他标头会影响用户的速度和隐私。检测到代理的 IP,而不是用户的 IP。所以,这些事情应该牢记在心。

【讨论】:

    猜你喜欢
    • 2011-06-09
    • 2011-11-05
    • 2011-02-11
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-07
    相关资源
    最近更新 更多