次の状況では、Request.ServerVariables("HTTP_REFERER") はブラウザのアドレス バーから通常どおり取得されます。
1. <a href> を直接使用する
2. Submit または <input type=image> (POST または GET) で送信されたフォーム
3. Jscript を使用してフォーム (POST または GET) を送信する場合
、Request.ServerVariables("HTTP_REFERER") が正常に値を取得できない状況を見てみましょう。
1. お気に入りからリンク
2. [ホーム] またはカスタマイズしたアドレスをクリックします。
3. Jscript の location.href または location.replace() を使用します。
4. ブラウザにアドレスを直接入力します。
5.<%Response.リダイレクト%>
6.<%Response.AddHeader%> または <meta http-equiv=refresh> リダイレクト
7. XML を使用してアドレスをロードすると、
明らかに、Request.ServerVariables("HTTP_REFERER") は正しく動作しません。例を見てみましょう。
ref.asp
<%
response.write "あなたは次の出身です: " & request.servervariables("http_referer")
%>
ref.html
<%
Response.AddHeader "更新"、"10;URL=ref.asp"
%>
<meta http-equiv='refresh' content='10;URL=ref.asp'>
<form method=GET action=ref.asp name=getform>
<input type=submit value=' そこに移動 (GET) >> '>
<input type=image style='cursor:hand'>
</form><p>
上記のコードが何を生成するかを見てください。
<フォームメソッド=POSTアクション=ref.asp名=ポストフォーム>
<input type=submit value=' そこに移動 (POST) >> '>
<input type=image style='cursor:hand'>
</form><p>
<a href='ref.asp'>直接リンク<p>
<a href='#' onclick='window.location.href="ref.asp";return false;'>javascript location</a>
<a href='#'onclick='window.location.replace("ref.asp");return false;'>javascript replace</a>
<a href='#' onclick='document .getform.submit();return false;'>javascript GET</a>
<a href='#' onclick='document.postform.submit();return false;'>javascript POST </a>