META Refresh HTML タグ

HTML では META タグにメタ情報を指定することができます。 この技術は一般的に、HTTP ヘッダーに依存するのではなく、HTML コードでリダイレクトまたはページの再読み込みを指定するような場合に使用します (たとえば、リダイレクトのための HTTP 状態コード 302 Document moved)。

サンプル HTML コード:

<html>
  <title>Login</title>
  <META http-equiv=refresh
        content="0; URL=http://www4.company.com/user/6543/login.html">
</html>

この例は、負荷分散およびセッション情報を導入するために、そのような HTTP 以外のリダイレクト (標準の HTTP リダイレクトに似たもの) を使用できることも説明しています。

Silk Performer 再生エンジンではこれをリダイレクトとして処理しないため、作成される HTTP リクエストに対して Recorder が関数呼び出しを生成し、その結果、コンテキストが失われることになります。

この動作はバグではなく、Silk Performer 再生で意図して設定された機能です。 これを自動的にリダイレクトとして処理することの危険性 (不正確な再生という観点から) の理由を理解するために、次の例を考察してください。

<html>
  <head>
    <title>Login</title>
    <META http-equiv=refresh
      content="1; URL=http://www.company.com/no_js_login.html">
  </head>
  <body onload="location='http://www.company.com/js_login.html'>
  </body>
</html>

このサンプル HTML はブラウザの JavaScript 機能を暗黙的にチェックし、ブラウザの JavaScript 機能に基づいて 2 つの異なるログイン ページの一方にリダイレクトします。 Silk Performer 再生エンジンが meta タグに指定された URL を自動的にダウンロードする場合、Web ブラウザとは異なる動作を示すこととなり、不正確になります。