問題タブ [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.
javascript - node,js で request.js を使用して、If-modified-since が必要な API からデータをフェッチする
4chan APIへのプロキシを作成しています。Node.js + Express でrequest.jsを使用して API へのクエリを作成していますが、API が必要とする "If-modified-since" を正確に実装する方法がわかりません。これがコードです。
既に実行されている 4chan にクエリを実行すると、応答せず、タイムアウトが発生します。
4chan API ルール:
- 1 秒間に複数のリクエストを作成しないでください。
- スレッドの更新は、最低でも 10 秒、できればそれ以上に設定する必要があります。
- リクエストを行うときは、If-Modified-Since を使用します。
- アプリと同じプロトコルを使用して API リクエストを行います。ユーザーが HTTPS 経由でアプリにアクセスしている場合にのみ、SSL を使用してください。
- さらに後で来る...
internet-explorer - 「ページにアクセスするたびに」がオンになっていると、なぜ 304 が発生するのですか?
この設定を持つ(古い)イントラネット サイトがあります
Every time I visit the page
: 真実
304
それでも、開発者ツールで多くの返信を見ることができます:
質問:
- 何故ですか ?すべての応答を として表示するにはどうすればよい
200
ですか?
関連情報:
IIS 7.5
これはIE9-10
( IE のみで実行されるサイト) で発生します (新しいブラウザーに調整されていない古い Web サイト (イントラネット) であるため、ブラウザー モードが ie9 に変更されます。
fiddler を使用すると、304 も表示されます。
リクエストヘッダーの例:
http - 304 Not Modified with 200 (キャッシュから)
「ステータス304が変更されていません」と「200(キャッシュから)」の違いを正確に理解しようとしています
最後に変更した JavaScript ファイルで 304 が発生します。なぜこれが起こるのですか?助けてくれてありがとう。
javascript - 304ステータスのjavascriptファイルでの同期ブロック?
script タグを介して JavaScript オブジェクトが読み込まれる Web アプリケーションがあります。js オブジェクトは、その後に続く別のスクリプト タグで参照されます。どちらのスクリプトにも defer または async 属性はありません。最初のスクリプトで 304 ステータスを取得するまで、これは問題なく機能します。
最初のスクリプトがステータス 304 を返すたびに、アプリケーションはスクリプトで作成されたオブジェクトが存在しないかのように動作します。スクリプトが順不同で解析されているかのように?これが発生するたびに、アプリケーションはハングしてしまいます。
アプリケーションは、iis7 で実行される ASP.net MVC アプリケーションです。Web 構成には、js ファイルの静的ファイル ハンドラーが含まれています。
また、304 ステータスは完全にランダムのようです。ファイルが変更されていない場合でも 200 を取得し、ランダムに 304 として返されることがあります。
これは、すべてのブラウザーでも発生します。
誰かがこの動作を見たことがありますか、またはなぜこれが起こるのか知っていますか?
etag - etags とチャンクエンコーディングを同時に活用していますか?
更新された質問
アプリケーションでどのように etag を活用できますか? また、ストリーミング/チャンク エンコーディングを導入すると複雑になりますか?
元の質問
で HTTP ストリーミングを行う場合Transfer-Encoding: chunked
、Content-Length
は不明な場合が多いため送信できません。
私の理解では、ブラウザーが etags を利用する場合、知っておく必要がありますContent-Length
。etag が提供されていても提供されていない場合Content-Length
、ブラウザは決して送信しませんIf-None-Match
。
これを回避する方法はありますか?
http - POST への応答で HTTP 304 を使用する
HTTP POST を使用してリソースを変更できる REST API があります。クライアントが POST リクエストを送信しても、リソースが変更されない可能性があります。条件付き応答で一般的に使用される 304 応答を使用して、要求が無効であることを示すことを考えています。これが行われている例を見つけることができなかったので、ここで質問して、他の誰かがこれを行っているか、それについて意見を持っているかどうかを確認することにしました.
ajax - キャッシュから HTTP 304 応答をクリアする方法は?
asp.net MVC ページのドロップダウンが、json データの AJAX GET 要求によって取り込まれている状況があります。最初のリクエストは、200 OK レスポンスでデータを返します。後続の呼び出しでは 304 Not Modified 要求が返されますが、ドロップダウンにはまだ正しく入力されています。これはすべて順調です。
ただし、私のアプリケーションの別の部分では、別のユーザーが、ドロップダウンのデータが返されるリポジトリのコンテンツを変更する可能性があります。私が望むのは、そのような変更の後、ドロップダウンのデータに対する他のユーザーによる後続の要求は、304 Not Modified の結果を返すのではなく、データの再取得を行うことです。
どうすればこれを達成できますか?
javascript - IE8 AJAX エラー: JavaScript がロードされていません
JSP、JavaScript、jQuery、および css を使用してかなり複雑なページを作成しています。Chrome、Firefox、IE10 で正常に動作します。ただし、IE8 では機能しません。特定のページに固有の JavaScript が読み込まれず、HTML が壊れており、一部の CSS が読み込まれますが、すべてではありません。
AJAX 呼び出しで呼び出されるページ:
開発者ツールでネットワーク アクティビティをキャプチャすると、関連するスクリプト ファイルが到着し始めていることがわかりますが、155B ~ 157B しか受信されていません。リザルト コードは 304 で、時間は 1ms 未満と表示されます。Chrome の同じレポートでは、同じ JS ファイルのサイズが 3 ~ 7 ~ 12 KB で、到着までに 3 ~ 10 ミリ秒かかり、HTTP コードは 200 であることが示されています。
通常の GET リクエストを介してリクエストされた同じページが正常に読み込まれます。この問題はIE8の既知のアグレッシブ キャッシングの問題のように見えますが、どういうわけか設定cache : false
しても 304 の発生を防ぐことはできません。
どうすればこれを機能させることができますか?
Win7 で jQuery バージョン 1.4.2、IE8 を使用。tc 開発者サーバー 2.8.2。
http - 「304 Not Modified」はどのように正確に機能しますか?
「304 Not Modified」応答はどのように生成されますか?
ブラウザは HTTP リクエストへの応答が 304 かどうかをどのように判断しますか?
ブラウザによって設定されるか、サーバーから送信されますか?
サーバーから送信された場合、サーバーはキャッシュで利用可能なデータをどのように認識し、どのように 304 を画像に設定しますか?
私の推測では、ブラウザによって生成された場合:
データを取得し、解析してデータベースにプッシュするために、サードパーティの API プロバイダーに依存しています。データはリクエストごとに変更される場合と変更されない場合がありますが、ヘッダーは常に200
. 解析したり、DB の最後の一意の ID をチェックしたりしたくありません...データの変更を判断したり、結果を直接比較したり、結果md5()
をsha1()
ハッシュcrc32()
して正常に動作したりしたくありませんが、決定するアルゴリズム304
。
同じ種類のアルゴリズムを使用して、データの変化を判断したいと考えています。