HTTP 304 未変更とは何ですか?
HTTP 304 Not Modified ステータス コードは、アクセスしようとしているリソースが最後のリクエスト以降変更されていないことを示します。サーバーはリソースを再送信せず、ブラウザーがキャッシュからリソースを表示することを期待します。
304 Not Modified ステータス コードは、クライアントが既にリソースをキャッシュ内に持っているため、不要なデータ転送を防止します。これにより、帯域幅の使用量が減少し、リソースへのアクセス速度が向上します。
304 Not Modified は、HTTP ステータス コードの 3xx シリーズに属します。
3
ステータスコードがリダイレクトであることを示しますxx
は HTTP リクエストのステータスに関するより具体的な情報を提供する 2 つの数値のプレースホルダー。
304 Not Modified ステータスコードの仕組み
304 Not Modified ステータス コードは、クライアントのデバイスまたはシステムで発生するため、クライアント側のリダイレクトと見なされます。その仕組みを詳しく説明します。
このプロセスは、ブラウザや Web クローラーなどのクライアントがサーバーに HTTP リクエストを送信することから始まります。この例では、クライアントは yourdomain.com の Web ページへのアクセスを要求します。
GET /index.html HTTP/1.1 ホスト: yourdomain.com
クライアントが初めてリクエストを行う場合、サーバーは 200OK 応答コードと ETag要求されたリソースはメッセージ本文に含まれます。
HTTP/1.1 200 OK ETag:92g93nb790256hwp72b9
ETag (エンティティ タグの略) は、クライアントに送信されたリソースの特定のバージョンを識別するための、数字、文字、記号の文字列で構成される HTTP 応答ヘッダーです。リソースが更新されるたびに変更されます。
これで、クライアントが同じリソースにアクセスするために別のリクエストを行うと、 一致しない場合 ヘッダー リクエスト。この If-None-Match ヘッダー リクエストには、前回の訪問時にサーバーがクライアントに送信した ETag が含まれます。
クライアントによっては、 変更後 最後のリクエストの時刻を含むヘッダー リクエスト。
GET /index.html HTTP/1.1 ホスト: yourdomain.com If-None-Match: 92g93nb790256hwp72b9 If-Modified-Since: Fri, 19 Apr 2024 12:00:59 GMT
次に、サーバーは、If-None-Match および If-Modified-Since ヘッダー要求の値をファイルに保存されている値と比較します。 一致する場合、サーバーはリソースを送信しません。代わりに、クライアントの最後のアクセス以降リソースが変更されていないことを示す 304 Not Modified 応答コードで応答します。
HTTP/1.1 304 変更されていません
クライアントがブラウザの場合、ブラウザはキャッシュ内にある利用可能なリソースのバージョンを訪問者に表示します。検索エンジンの場合は、以前に保存したバージョンを使用します。
ただし、If-None-Match は If-Modified-Since ヘッダー要求よりも優先度が高くなります。ただし、If-Modified-Since ヘッダー要求の方が実装が簡単なため、より一般的です。
Googlebot が 304 Not Modified とやり取りする方法
Google は If-Modified-Since および If-None-Match リクエスト ヘッダーをサポートしており、リソースが前回のアクセス以降更新されていない場合はサーバーが 304 Not Modified レスポンス コードを返すことを期待しています。
しかし、 Googleは サイトのリソースをクロールするときは常に、ヘッダー リクエストを含めます。クロールに必要だと判断された場合にのみ、ヘッダー リクエストを含めます。
Google がヘッダー リクエストを含めない場合でも、前回のアクセス以降にコンテンツが変更されていない場合は、Googlebot のリクエストに対して 304 Not Modified ステータス コードで応答するようにサーバーを設定できます。
SEO 304 Not Modified ステータスコードの利点
304 Not Modifiedステータスコードは、サイトの クロール予算クロール バジェットとは、一定期間内に検索エンジンがサイト上でクロールするページの最大数です。
検索エンジンは、サイトをクロールするときに帯域幅を消費します。検索エンジンがサイトをクロールする頻度が高すぎると、帯域幅の大部分が消費され、サーバーに過負荷がかかり、サイトの速度が低下したり、クラッシュしたりする可能性があります。
サーバーの過負荷を避けるため検索エンジンはサーバーの容量を推定し、訪問者にパフォーマンスやユーザビリティの問題が発生しないようにクロール バジェットを設定します。
しかし、小規模なサイトではクロールバジェットを気にする必要はなく、通常、10,000以上のユニークページを持つサイトや、URLが次のように分類されるサイトでのみ問題となります。 発見済み – 現在インデックスされていません Google Search Console で。
推定サーバー容量は実際のサーバー容量とは無関係であることを知っておくことが重要です。Google は特定の基準に基づいてサーバー容量を推定しており、推定値が実際のサーバー容量よりも低くなるのは正常です。
304 Not Modified ステータス コードのその他の利点
SEO の利点に加えて、304 Not Modified ステータス コードは、訪問者と検索エンジンにいくつかの実際の非 SEO の利点を提供します。
304 Not Modified ステータス コードを使用すると、訪問者はサーバーからリソースを取得するために費やすデータを節約できます。また、サーバーからダウンロードするのではなく、ブラウザーから取得するため、訪問者はリソースにすばやくアクセスできます。
一方、検索エンジンはインターネットをクロールするために多くのリソースを消費します。検索エンジンには無限のリソースがないため、304 Not Modified ステータス コードにより、検索エンジンは限られたリソースを使用して同じリソースを繰り返しクロールできなくなります。