問題タブ [http-status-code-304]
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.
iis-7.5 - IIS 7.5 および ARR - 画像の 304 ステータス コードが送信されない
Sitecore サイトの前に ARR を使用してリバース プロキシをセットアップしました。Sitecore メディア アイテムのみを提供するために、このリバース プロキシを使用しています。Sitecore メディア アイテムは、ARR を使用してディスク上に適切にキャッシュされます。
現在直面している問題は、すべての画像の HTTP ステータス コードが常に 200 であるため、ブラウザにキャッシュされないことです。リバース プロキシを無効にすると、HTTP ステータス コードは 304 になり、ブラウザはローカル キャッシュから画像をレンダリングします。
ARR が 304 ステータス コードを送信しない理由はありますか?
更新 #1: 以下は、設定した ARR ルールです。
ajax - Sencha Touch Ajax Request で 302 レスポンスを見つける方法
私が制御していないバックエンドに対して Ajax.request を作成しています。
このリクエストによりログイン ページにリダイレクトされることがあり、response.status は 302 ではなく 200 です。
明らかに、このリダイレクトは私が期待したものではないため、304 がいつ発生したかを特定する必要があります。
ほとんどの場合、何らかの回避策があります。
何か案は?
よろしく。
node.js - express の sendFile 関数が 304 をエラーとして扱うのはなぜですか?
sendFile関数を使用してクライアントにファイルを送信するexpressjsサーバーがあります。関数のコールバックを使用して、エラーがいつ発生したかを確認します。sendFile が 304 で応答することを決定するたびに (私の場合は望ましい動作です)、そのコールバックが次のエラーで呼び出されるようです:
ただし、これに関するドキュメントが見つかりません。このエラーをいつ無視するか、いつ反応するかを判断する方法を知りたいと思います。望ましい行動の副作用。
これは実際にsendFileが行うべきことですか? これに関するドキュメントはありますか?このエラーを他の ECONNABORT エラーと区別するにはどうすればよいですか?
c# - ASP.NET-MVC アプリケーションの「更新時間」のようなものはありますか?
私の Web サイトは、ディスクから取得したアイテムの情報を返します (コントローラーにあるいくつかのロジックを含むため、単なる静的アセットではありません)。対応するアイテムのファイル書き込み時間を取得して、変更されていないアイテムに対して304を返すことで、最適化を試みました。コードを更新した後も、アプリケーションは項目が更新されていないと認識し、304 を返します。アプリケーション コードが変更されていることを認識していないため、結果が異なる場合があります。そのため、ユーザーはキャッシュを削除した後にのみ、更新をすぐに見ることはできません。「アイテムの更新時間」だけでなく、「アプリの更新時間」もチェックすることで、その問題を解決したいと考えています。アプリケーションが更新された時刻のようなものを取得する方法はありますか? この時点で、すべてのアプリケーション ファイルの更新時間の最大値を確認したいと思います。
UPD: コード例を求められたので、ここでは少し簡略化したバージョンを示します。
django - HTTP 200 が HTTP 304 あたりで 2 回発生する
こんにちは、私は Django と jQuery Mobile を使用しており、ページの更新ごとに HTTP 304 の周りに 2 つの HTTP 200 が表示されます。すべての JavaScript インクルードをコメントアウトしましたが、まだこれを取得しているため、問題は jQuery モバイルではないと思います。私が 304 を理解していないだけかもしれませんが、HTTP 304 の周りに 2 つの HTTP 200 リクエストがある理由を調べてみましたが、答えが見つからなかったので、これは不自然だと思います。
javascript - サーバーへの条件付きリクエストの回避
js ファイルがキャッシュにロードされています。
HTMLファイルがブラウザにロードされると、条件付きリクエスト(ここから見つかります)がサーバーに送信され、そのリソースが変更されているかどうかが確認されます。
私がやりたいことは、リソースがキャッシュされているときにサーバーにリクエストを送信しないことです (条件付きリクエストでも新しいリクエストでもありません)。
出来ますか?
可能であれば、その解決策は何ですか?
そうでない場合、なぜですか?
caching - ETag は Cache-Control ヘッダーを無効にしますか?
RESTful Web サービスからリソースを取得しており、応答に次の 2 つのヘッダーを追加しています。
ブラウザーがこの応答を初めて取得したとき、2 分間正しくキャッシュされました。
ただし、次にリソースを要求したとき、ブラウザーはIfNoneMatch
ヘッダーを送信し、期待どおりに取得し、2 分間キャッシュ304 Not Modified
する別のヘッダーを取得しました。Cache-Control
しかし、ブラウザは応答をキャッシュしませんでした。私はページを更新し続け、リクエストを出し続けているため、取得し続けて304 Not Modified
います。
これは正常な動作ですか?
304 Not Modified
を取得した後、キャッシュされたリソースをさらに 2 分間再検証し、それ以上リクエストを行わないようにブラウザに指示するにはどうすればよいですか?
java - 静的アセットが変更されたときに Play Framework の応答が変更されない
Play フレームワーク プロジェクトを新しい PC に移動し、すべて正常に動作していますが、厄介な問題が 1 つあります。すべての静的アセット304: Not Modified
を編集した後でもヘッダーが返されます。そして、私は問題の原因を見つけたと思います.playフレームワークはcurlで次
HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Length: 527
Content-Type: application/javascript; charset=utf-8
Date: Wed, 14 Jan 2015 17:49:24 GMT
ETag: "4a0670efaaa84f8734d67d4557a7309dfe235301"
Last-Modified: Thu, 01 Jan 1970 00:00:00 GMT
のように返信します:Last-Modified: Thu, 01 Jan 1970 00:00:00 GMT
私には間違っているようです. また、何かを編集しても、ETag は変更されません。キャッシュを削除しない限り、Chrome は変更を読み込まず、モバイル開発がほぼ不可能になるため、これは面倒です。
新しいアプリケーションを作成するときも同じことが起こります。Windows 8も搭載した古いラップトップで動作しました。