ホームページ > 記事 > ウェブフロントエンド > HTTP 304エラーの詳しい解説_基礎知識
Not Modified クライアントはドキュメントをバッファリングし、条件付きリクエストを発行しました (通常は、クライアントが指定された日付より新しいドキュメントのみを必要とすることを示す If-Modified-Since ヘッダーを提供します)。サーバーは、バッファされた元のドキュメントが引き続き使用できることをクライアントに伝えます。
クライアントがファイルのリクエスト時にキャッシュされたファイルに Last Modified があることが判明した場合、リクエストには If Modified Because が含まれ、この時間がキャッシュされたファイルの Last Modified になります。したがって、リクエストに If Modified Because が含まれている場合は、リクエストがすでにクライアントにキャッシュされていることを意味します。この時刻と現在リクエストされているファイルの変更時刻を判断して、304 を返すか 200 を返すかを決定してください。 CSS や画像などの静的ファイルの場合、サーバーは最終更新日と更新日を自動的に比較して、キャッシュまたは更新を完了します。ただし、動的に生成されるページである動的ページの場合、最終変更情報が含まれていないことが多いため、ブラウザーやゲートウェイなどはページをキャッシュしません。つまり、要求されるたびに 200 リクエストが完了します。
したがって、動的ページのキャッシュを高速化するには、最初に Last Modified 定義を応答の HTTP ヘッダーに追加し、次にリクエスト内の If Modified Because とリクエストされたリクエストの更新時間に基づいて 200 または 304 を返す必要があります。コンテンツ。 304 を返すときにデータベース クエリが実行されていますが、それ以降のデータベース クエリを回避でき、ページ コンテンツは返されず HTTP ヘッダーのみが返されるため、帯域幅の消費が大幅に削減され、ユーザー エクスペリエンスが向上します。
これらのキャッシュが有効な場合、HttpWatch を通じてリクエストを表示すると、次の結果が得られます:
初回訪問数 200
マウスクリックによる2回目のアクセス(キャッシュ)
F5 を押して 304 を更新してください
Ctrl F5 を押して 200 を強制的に更新します
これが当てはまる場合は、キャッシュが本当に有効であることを意味します。上記は HTTP 304 についての私の理解です。