META Refresh HTML Tag

HTML allows for the specification of meta information within META tags. A popular use of this technique involves specifying redirections or page reloads within HTML code, rather than relying on HTTP headers to do so (for example, HTTP status code 302 Document moved for redirections).

Example HTML code:

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

This example also demonstrates that such non-HTTP redirections can be used (much like standard HTTP redirections) to introduce load balancing and/or session information.

The Silk Performer replay engine does not treat this as a redirection, so the recorder must generate a function call for the resulting HTTP request, thereby losing the context.

Note that this behavior is not a bug, but rather an intentional design feature in Silk Performer replay. To understand why automatically treating this as a redirection would be dangerous (in terms of inaccurate replay), consider the following example:

<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>

This sample HTML implicitly checks the browser's JavaScript capabilities and redirects to one of two different login pages, based on the JavaScript capabilities of the browser. If the Silk Performer replay engine automatically downloaded the URL specified in the meta tag, it would be demonstrating behavior unlike any Web browser and would therefore be inaccurate.