다음 상황에서는 브라우저의 주소 표시줄에서 Request.ServerVariables("HTTP_REFERER")를 정상적으로 가져옵니다.
1. <a href>를 직접 사용하세요
2. 제출 또는 <입력 유형=이미지>(POST 또는 GET)로 제출된 양식
3. Jscript를 사용하여 양식(POST 또는 GET)을 제출할 때
Request.ServerVariables("HTTP_REFERER")가 정상적으로 값을 가져올 수 없는 상황을 살펴보겠습니다.
1. 즐겨찾기에서 링크
2. '집' 또는 맞춤 주소를 클릭하세요.
3. Jscript의 location.href 또는 location.replace()를 사용하세요.
4. 주소를 브라우저에 직접 입력하세요
5.<%응답.리디렉션%>
6.<%Response.AddHeader%> 또는 <meta http-equiv=refresh> 리디렉션
7. XML을 사용하여 주소를 로드합니다.
당연히 Request.ServerVariables("HTTP_REFERER")는 대부분의 경우 제대로 작동하지 않습니다.
ref.asp
<%
response.write "당신은 다음에서 왔습니다:" & request.servervariables("http_referer")
%>
ref.htm
<%
Response.AddHeader "새로 고침", "10;URL=ref.asp"
%>
<meta http-equiv='refresh' content='10;URL=ref.asp'>
<form method=GET action=ref.asp name=getform>
<입력 유형=제출 값=' 바로가기(GET) >> '>
<입력 유형=이미지 스타일='커서:손'>
</form><p>
위의 코드가 무엇을 생성하는지 확인하세요.
<양식 방법=POST 작업=ref.asp 이름=postform>
<입력 유형=제출 값=' 바로가기(POST) >> '>
<입력 유형=이미지 스타일='커서:손'>
</form><p>
<a href='ref.asp'>직접 링크<p>
<a href='#' onclick='window.location.href="ref.asp";return false;'>javascript 위치</a>
<a href='#'onclick='window.location.replace("ref.asp");return false;'>자바스크립트 바꾸기</a>
<a href='#' onclick='document .getform.submit();return false;'>javascript GET</a>
<a href='#' onclick='document.postform.submit();return false;'>javascript POST </a>