問題タブ [if-modified-since]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - ETag、If-Modified-Since をサポートする Android 画像ローダー ライブラリ
私はしばらくの間Android Http Image Managerを使用してきましたが、最近Android Universal Image Loaderに切り替えました
どちらも、ローカル キャッシュが最新かどうかを確認する機能をサポートしていません。
私が現在探しているのは、コミュニティ サポートと、ETagおよび/またはIf-Modified-Sinceを介したリモート変更のチェックをサポートする Image Loader ライブラリです。
java - GWT を使用してファイルが変更されているかどうかを調べる
GWT を使用してしばらくしてから画像が変更されたかどうかを知りたいです。If-Modified-Since http ヘッダーの設定が機能する可能性があることがわかったので、次の投稿のようにしてみました。
問題は、ステータス コードが 0 になることです。何が間違っているのか教えてください。これは、サーバー上のファイルが変更されているかどうかを知る良い方法ですか、または GWT を使用する他の方法はありますか? ありがとう。
http - HTTP/1.1 におけるエンティティの年齢は?
私はこの質問に数日間苦労してきました。
キャッシュに保存されているオブジェクトの経過時間。特にクラウドフロントが気になります。指定したら
キャッシュ制御: max-age=60、パブリック
T = N でアップロードしてから 10 分経過すると、エンティティの公式年齢は 600 秒になりますか? 言い換えれば、エンティティの年齢は NOW - T ですか?
たとえば、有効期限が 30 分のファイルを S3 にプッシュし、そのファイルの新しいバージョンを 1 週間プッシュしなかった場合、Cloud Front はそのエンティティを再検証 (GET If-Modified-Since) しますか?リクエストごとに?それとも、エンティティを 30 分ごとに再検証し、再検証のたびに年齢を 0 に戻しますか?
ここで年齢の定義を調べましたが、答えが何であるかはよくわかりません。
java - Java Web Start はリソースをキャッシュしますか、それとも If-Modified-Since を使用しますか?
ブラウザは画像などのリソースをキャッシュし、If-Modified-Since
変更されていない場合にサーブレットが確認して 304 を返すことができるようにヘッダーを送信できます。
では、Java Web Start はどうでしょうか。これを行うことはありますか?If-Modified-Since
スプラッシュ画面でも、Java Web Start にヘッダーがないことを確認しました。Java Web Start にはブラウザのようなキャッシュがないということですか?
jquery - IE で JQuery/JSON を使用して If-modified-since を取得するにはどうすればよいですか?
私は特に高価な (クエリと帯域幅の点で) を扱っています。これはアイテムのカタログと考えてください。ただし、カタログは常に完全に正確である必要があります。つまり、カタログの更新はリアルタイムで反映される必要があるため、固定のキャッシュ有効期限は機能しません。
カタログは、現在、JQuery 1.8.2 を使用して、次のようにクライアントによって要求されています。
結果は、"application/json" コンテンツ タイプで適切にフォーマットされた JSON になります。
私はサーバー側で信頼できるキャッシュを維持しているので、If-Modified-Since セマンティクスを実装して、キャッシュが最新のときに (DB またはネットワーク ヒットを発生させることなく) サーバーが 304 を返すことができるようにしたいと考えています。 「If-Modified-Since」タイムスタンプ以降にリロードが発生した場合、クライアントへの新しいカタログ。
ただし、これを機能させるのに問題があります(少なくともIEでは)。次の設定を試みましたが、クライアントに If-Modified-Since を送信させることができませんでした。
- JSON リクエストで "cache: true" を設定します
- サーバーが応答で "Cache-control: private" HTTP ヘッダーを返すようにする
これについて洞察を持っている人はいますか?
フォローアップとして、キャッシュ制御を「パブリック」に設定した場合 (つまり、プロキシ サーバーによってキャッシュ可能)、キャッシュの一貫性はプロキシを通じて維持されますか? つまり、クライアントがそのページを要求するたびに、プロキシがサーバーに戻ってチェックします。プロキシ キャッシングを有効にする場合、プロキシが一貫したキャッシュ状態を保証することを完全に確認する必要があります。
私はしばらくこれに固執していたので、助けていただければ幸いです!
ありがとう - K.
python - Web ページが変更されたかどうかを検出する
私の Python アプリケーションでは、データを収集するために多くの Web ページを読み取る必要があります。http 呼び出しを減らすために、変更されたページのみをフェッチしたいと思います。私の問題は、ページが変更されたこと (コード 200) がコードによって常に通知されることですが、実際にはそうではありません。
これは私のコードです:
何が問題なのかわかりません。誰でも私を助けることができますか?
file - File::Stat の mtime のモックまたはスタブ
私のオブジェクトGET
は、HTTP 経由のファイルです。
これは、If-Modified-Since
ヘッダーを使用して行います。ヘッダーの時刻以降にファイルが変更されていない場合、Not Modified 応答が返され、ファイルをフェッチして書き込むことはできません。そのようです:
両方のケースをテストしたい (どちらの場合も、ディスク上にファイルが存在する)。そのためには、 で何かをスタブ化するかNet::HTTP
、File.stat をスタブ化しmtime
て、オンライン リソースが new または Not-modified-since を返すことが確実な を返す必要があります。
スタブ (またはモック) する必要がありNet::HTTP
ますか? もしそうなら、何?
または、Not-modified ヘッダーを強制または抑制するために、スタブを作成mtime
して、はるか過去またははるか未来の日付を返す必要がありますか?
編集:問題をさらに掘り下げて、i.ytimg.comドメインがこれらのヘッダーをサポートしていないことを知りました。したがって、YouTube API から JSON を検査して、これを解決する必要があります。ただし、「if-modified-since-headers をテストするときに何をどのようにモックするか」という問題は依然として残っています。
ドメインがこれをサポートしていないと結論付ける方法は次のとおりです。
そこには「最終更新日」はありません。if-modified-since ヘッダーをサポートする exaple.com への別の呼び出しで示されています。
web-services - パスの更新中にエラーが発生しました
シリアル 1 のパスを iPod touch に追加し、iPhone 5 にシリアル 34455 のパスを追加します。次に、新しいパスをプッシュします。これで、パスの裏側を切り替えるだけでパスを更新できます。iPhone 5 でパスを切り替えると、パスが更新されます。しかし、iPod touch でパスを切り替えると、パスを更新できず、php_error.log に次のエラーが表示され
[01-May-2013 10:51:56 Europe/Berlin] Passbook Error Log: [2013-05-01 15:51:54 +0700] Get pass task (pass type pass.cam-mob.passbookpasstest, serial number 1, if-modified-since Wed, 01 May 2013 14:59:39 GMT + 7; with web service url http://192.168.1.202/passesWebserver/webService/) encountered error: Requested serial number 1, received serial number 34455
ます。この問題を解決するにはどうすればよいですか?