web-dev-qa-db-ja.com

サーバーはクライアントのキャッシュ設定を解除できますか?

間もなく回復すると予想されるサイバースクワッターにドメイン名に異議を唱えました。問題は、サイバースクワッターがキャッシュヘッダーを変更し、ドメイン名が返されるまでサイトに既にアクセスしたか、サイトにアクセスするすべてのユーザーが2016年まで同じページを表示できるようになったことです。

サイトのトラフィックの多くはGoogleからのものであり、エラー301とウェブマスターツールを使用してドメインを移動することで修正します。しかし、サイトに直接アクセスするユーザーはどうでしょうか?クライアントのキャッシュ設定を破る方法はありますか(そうではないと思います)(ホームページがキャッシュされている場合でも)。

ありがとうございました!

3
Batolopo

サーバーはクライアントのキャッシュ設定を解除できますか?

HyperText Transfer Protocolを使用しない場合-クライアントには常にキャッシュをクリアするオプションがあります。または、Expires/max-age値を無視して新しいリクエストを強制するオプションがあります。

クライアントのキャッシュ設定を破る方法はありますか(そうではないと思います)(ホームページがキャッシュされている場合でも)。

HTTPクライアント(FireFoxでテスト済み)は、ドメイン名が新しいサーバーを指す場合、Expires/max-ageキャッシュヘッダーを無視する必要があります。

ドメインの制御に戻って、ドメインのA/AAAAレコードが不法占拠者に属さないサーバーのIPv4/IPv6アドレスを指定したら、それは時間の問題になります( longer クライアントのキャッシュされたDNSレコードが更新される前に、5年以内に)クライアントの古いキャッシュされたコンテンツは無視され、リクエストはサーバーから結果を返します。


テストプロセス:

  1. Hostsファイルの「test.cache.domain」にサーバー#1のIPアドレスを指定します
  2. 仮想ホストを作成し、サーバー#1に高い値のmax-ageを指定します
  3. 仮想ホストを作成し、サーバー#2にキャッシュ制御ヘッダーを作成しません
  4. ブラウザで「test.cache.domain」をリクエストします(サーバー#1のログを確認して、1つのリクエストのみを確認します)
  5. ブラウザを閉じ、ローカルDNSキャッシュをクリアし、hostsファイルで「test.cache.domain」のサーバー#2 IPアドレスを指定します
  6. ブラウザーを開き、「test.cache.domain」を要求します(サーバー#2からの結果を表示する必要があります)
2
danlefree