当社独自の CMS は、ユース スポーツ チームの 1 シーズンのスケジュールを含むカレンダー フィードを作成します。エンドユーザーが自分のデバイス (またはソフトウェア プログラム) でフィードを消費するための URL を提供します。これは、毎年何万人もの人々が行っています。
問題は、ほとんどのプログラムとデバイスで、カレンダーのサブスクリプションを追加するための UI は比較的優れていますが、不要になったフィードを削除するための UI はそれほど優れていないことです。
これにより、サーバーへのカレンダー フィード リクエストの 90% 以上が、スケジュールが完了してからずっと経過しているチームからのものであるという状況が生まれました。
最初は、現在のチーム以外に空のフィードを返そうとしましたが、そもそもデバイスがリクエストを行うのを防ぐことはできませんでした (これにより、サーバー上のリソースが拘束されます)。エンドユーザーが何かをするように動機付けるほど (またはまったく) 迷惑ではありませんでした。
そのため、過去 2 年間、代わりに前月から翌月までの 1 つのイベントを返し、「この古いフィードを削除してください」というタイトルを付け、そのための手順も提供しました。それは少し役に立ちましたが、十分ではありませんでした。
最近、カレンダー フィードにアラートを添付できることがわかったので、ユーザーに行動を促すために、単一の「古い」イベントにアラートを添付することも決定しました。3 時間間隔で 2 回繰り返されるアラート。これはより効果的ですが、エンドユーザーにとっては非常に面倒です.
それで、ここに質問があります。 デバイスがリクエストを行ったときに、フィードが利用できなくなり、デバイスがリクエストを停止する必要があることをデバイスに示すように、サーバーでできることはありますか? 私たちが試した他のいくつかのことは次のとおりです。
- さまざまな HTTP ステータス コード (302、301、500 など) を返す
- フィードに非常に長い TTL を設定する
どれも効果がないようです。HTTPステータスコード410「Gone」で空の応答を返す方法があり、デバイス/プログラムが何をすべきかを知る必要があるようです. 任意/すべての提案を歓迎します!