【问题标题】:How to unpublish an iCal (*.ics) feed?如何取消发布 iCal (*.ics) 提要?
【发布时间】:2015-12-06 04:16:56
【问题描述】:

我网站上的一项功能允许注册用户为其组织创建日历。我们通过带有查询字符串参数的 URL 为这些日历提供动态生成的 iCal 提要。任何人都可以通过将提供的 URL 输入到 Google 日历、Outlook、iPhone 等中来订阅这些提要...

这几年来一直运行良好,但我们现在遇到过时或删除日历的问题。如果注册用户显着更改或删除其帐户,则日历将不复存在,提要也将毫无用处。我们目前为这些请求返回“404 - 未找到”错误(最近从“400 - 错误请求”更改)。

我的问题是,除了返回 404 之外,还有什么方法可以让订阅者停止请求错误的提要?这是similar question,接受的答案建议返回 404 或 410,并希望客户会看到错误并手动删除订阅。

到目前为止,这似乎不起作用。我们每小时收到约 10 万个提要请求,其中 30% 是针对已删除日历的。

Google、Apple 等公司在多次收到 404 错误时是否不会放弃?其他人是如何处理这个问题的?

如果这只是日志污染的问题,我不会太担心。但是,由于提要是动态生成的,因此每个请求都会命中后端数据库。处理是微不足道的,似乎不会影响性能,但情况只会变得更糟。

抱歉,如果这属于 ServerFault。虽然这个问题会影响我的服务器,但我相信解决方案是程序化的。

【问题讨论】:

    标签: calendar icalendar


    【解决方案1】:

    我不相信有一个简单的答案 - 我想以前有人问过。

    当一些黑客使用您的网站进行登录或 xmlrpc 目标练习或只是寻找漏洞时,这就像必须处理所有流量一样。或者垃圾邮件发送者尝试使用散弹枪方法发送电子邮件。或者当网络蜘蛛决定过度抓取您的网站时。您必须调整所有无用流量的大小。

    您可能会在数据库之外生成并更新错误 ics URL 的列表,并在请求接近数据库之前进行脚本检查并退回请求? 基本上尝试尽可能有效地处理问题。

    您也可以在帐户删除中尝试添加一个步骤,要求用户转到他们的日历程序并删除提要,然后再继续。然而,这可能会导致不好的氛围,并且可能无论如何都无法完全解决它。

    【讨论】:

    • 谢谢@anmari。我发现了另一个问题来解决这个问题(然后在我发布后发现了另一个问题),但希望现在可能有一个更明确的答案。我想没有多少人关心它。
    • 对于确实存在但不再使用的 ics 提要,提供 http 410 (Gone) 状态可能是可行的方法。见w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.11stackoverflow.com/questions/39855536/…
    • 我为不再存在的 iCalendar 提要 URL 返回代码 410,但请求不断出现。看起来,至少在这一点上,日历客户端并未监控 iCalendar 提要的此状态。
    猜你喜欢
    • 2015-04-17
    • 1970-01-01
    • 1970-01-01
    • 2015-04-05
    • 2018-03-19
    • 2017-09-20
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    相关资源
    最近更新 更多