0

私は、頻繁に変更されるオーディオ ファイルを再生する PHP を使用した twilio プロジェクトに取り組んでいます。

Twilio の TwiML Voiceドキュメントには、次のように記載されています。

ファイルの内容が変更されたことを知らせるために、Web サーバーが適切なヘッダーを送信していることを確認してください。

これらはどのヘッダーで、PHP でどのように設定するのですか。

4

2 に答える 2

1

これらはどのヘッダーですか?

これがTwilioでのキャッシングの仕組みです

  • Twilio は、GET リクエストを使用してサーバーから .mp3 をリクエストします。サーバーは 200 OK を返し、E-Tag ヘッダーも返します。Twilio は、E-Tag ヘッダーと mp3 ファイルをデータベースに保存します。
  • 次に Twilio がその URL に GET リクエストを送信するとき、E-Tag ヘッダーに沿って送信します ("If-None-Match" のように見えるはずです)。Twilio が最後にアクセスしてからファイルが変更されていない場合、サーバーは 304 Not Modified ヘッダーを返します。重要なのは、mp3 ファイルのデータを送信しないことです。Twilio は、データベースに保存されている mp3 ファイルを使用します。Twilio がデータベースから mp3 ファイルを読み取る方が、サーバーが送信するよりもはるかに高速です (また、サーバーの帯域幅も節約されます)。
  • URL で提供されている mp3 のコンテンツを変更し、Twilio がその URL に GET リクエストを行うと、サーバーは新しい E タグを付けて 200 OK を返します。Twilio はサーバーからファイルをダウンロードし、キャッシュします。

PHPでそれらを設定するにはどうすればよいですか?

header("ETag: \"uniqueID\");

ファイルを送信する際、Web サーバーはETagというヘッダーにファイルの ID を添付します。ファイルを要求すると、ブラウザはファイルが既にダウンロードされているかどうかを確認します。キャッシュされたファイルが見つかった場合、サーバーはファイル要求とともに ID をサーバーに送信します。サーバーは ID が一致するかどうかをチェックし、一致する場合は送り返しheader("HTTP/1.1 304 Not Modified");ます。それ以外の場合、サーバーはファイルを正常に送信します。

確認する簡単な方法の 1 つは、 http://yoururl.com/play.mp3?key=somevalueのように、偽のキーと値のペアを URL の末尾に追加することです。Web サイトは、example.com/test.mp3 をロードした場合と同じ mp3 を引き続き提供する必要がありますが、Twilio には新しい URL (キャッシュされていない) のように見えます。

于 2013-08-08T18:15:09.867 に答える
0

Twilio は Squid を使用して MP3 をキャッシュします。キャッシュ制御ヘッダーを使用して、アイテムがキャッシュされる期間を制御できます。

キャッシュ制御: max-age=3600

http://wiki.squid-cache.org/SquidFaq/InnerWorkings#How_does_Squid_decide_when_to_refresh_a_cached_object.3F

于 2013-10-21T19:10:25.177 に答える