Calendar 如何取消发布iCal(*.ics)提要?

Calendar 如何取消发布iCal(*.ics)提要?,calendar,icalendar,Calendar,Icalendar,我的网站上的一项功能允许注册用户为其组织创建日历。我们通过带有查询字符串参数的URL为这些日历提供动态生成的iCal提要。任何人都可以通过在谷歌日历、Outlook、iPhone等中输入提供的URL来订阅这些提要 这已经运行了好几年了,但我们现在遇到了一个问题,过时或删除日历。如果注册用户显著更改或删除了他们的帐户,日历将不再存在,提要也将无效。我们目前为这些请求返回一个“404-notfound”错误(最近从“400-Bad Request”更改为“404-notfound”) 我的问题是,除

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

这已经运行了好几年了,但我们现在遇到了一个问题,过时或删除日历。如果注册用户显著更改或删除了他们的帐户,日历将不再存在,提要也将无效。我们目前为这些请求返回一个“404-notfound”错误(最近从“400-Bad Request”更改为“404-notfound”)

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

到目前为止,这似乎不起作用。我们每小时收到约10万个订阅源请求,其中整整30%用于删除日历

当谷歌、苹果等公司反复获得404的订阅源时,他们不会放弃吗?其他人是如何处理这个问题的

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


如果这属于服务器故障,请道歉。虽然这个问题影响到我的服务器,但我相信解决方案是程序化的。

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

这就像当一些黑客使用您的站点进行目标登录或xmlrpc实践,或者只是寻找漏洞时,必须处理所有流量。或者垃圾邮件发送者试图通过散布枪的方式发送电子邮件。或者当网络蜘蛛决定过度爬网你的网站时。你必须为那些无用的流量调整大小

您可能会在数据库外生成并保持最新的坏ics URL列表,并在请求接近数据库之前进行脚本检查和跳出请求? 基本上是尽可能有效地处理问题


您还可以在“帐户删除”中尝试添加一个步骤,请求用户转到其日历程序并在继续之前删除提要。然而,这可能会引起不好的共鸣,而且无论如何也可能无法完全解决。

谢谢@anmari。我发现了另一个可以解决这个问题的问题(在我发帖后又发现了另一个问题),但我希望现在有一个更明确的答案。我想没有多少人关心它。对于已经存在但不再使用的ics提要,提供http 410(Gone)状态可能是一条出路。看到和