HTTP_REFERRER을 가지고 오지 못하는 경우

고은찬·2021년 3월 31일
0

PHP

목록 보기
1/1

HTTP_REFERRER이란? + 서버함수

이전 페이지의 URL 링크 값이다.

프로그래밍을 하다 보면 서버 환경이나 사용자 환경, 접속자의 IP주소 등의 자바스크립트의 USER-AGENT와 같은 정보들을 수집할 수 있는 함수들이 마련되있다.

PHP에선 이를 통틀어 서버함수라 칭하고, $_SERVER 의 배열 형태로 사용할 수 있다.

$_SERVER['SERVER_NAME'] : 웹사이트 도메인
ex) experbucket.com

$_SERVER['HTTP_ACCEPT'] : 웹사이트 타입
ex) text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

$_SERVER['HTTP_ACCEPT_CHARSET'] : 웹사이트 캐릭터셋
ex) windows-949,utf-8;q=0.7,*;q=0.3

$_SERVER['HTTP_ACCEPT_ENCODING'] : 인코딩 방식
ex) gzip, deflate, sdch

$_SERVER['HTTP_ACCEPT_LANGUAGE'] : 언어
ex) ko-KR;fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4

$_SERVER['HTTP_USER_AGENT'] : 웹사이트에 접속한 사용자 환경
ex) Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17

$_SERVER['REMOTE_ADDR'] : 웹사이트에 접속한 사용자 아이피
ex) xxx.xxx.xxx.xxx

$_SERVER['REMOTE_PORT'] : 웹사이트에 접속한 사용자 포트
ex) 8999

$_SERVER['SERVER_ADDR'] : 웹서버가 사용하는 아이피
ex) xxx.xxx.xxx.xxx

$_SERVER['SERVER_PORT'] : 웹서버가 사용하는 포트
ex) 80

$_SERVER['SERVER_SOFTWARE'] : 웹서버 구성 환경 (버전)
ex) Apache/2.2.22 (Win64) PHP/5.3.13

$_SERVER['GATEWAY_INTERFACE'] : CGI 정보
ex) CGI/1.1

$_SERVER['SERVER_PROTOCOL'] : 사용된 서버 프로토콜
ex) HTTP/1.1

$_SERVER['DOCUMENT_ROOT'] : 현재 웹사이트가 위치한 서버상의 위치
ex) /home/www/html

$_SERVER['SCRIPT_FILENAME'] : 실행되고 있는 위치와 파일명
ex) /home/www/html/memo/index.php

$_SERVER['REQUEST_URI'] : 현재페이지의 주소에서 도메인 제외
ex) /memo/index.php?user=

$_SERVER['PHP_SELF'] : 현재페이지의 주소에서 도메인과 넘겨지는 값 제외
ex) /memo/index.php

$_SERVER['HTTP_REFERER'] : 이전페이지의 URL 링크 값

$_SERVER['APPL_PHYSICAL_PATH'] : 현재페이지의 실제 파일 경로

출처: https://beagle-dev.tistory.com/167 [언젠간 되어있겠지]

REFERRER을 가져오지 못하는 경우

  1. 주소창에 주소를 직접 입력해서 들어오는 경우
  2. 즐겨찾기를 이용해서 들어오는 경우
    • 로그파일에 .../favicon.ico로그가 먼저 남는다.
    • 이는 IE가 즐겨찾기를 눌러서 사이트를 방문할 경우 favicon.ico 요청을 하고, 해당 URL의 요청을 하기때문
  3. 자바스크립트의 location.href를 통해서 설정된 주소로 들어왔을 경우.

결론 : 가져오지 못하는 경우 null로 처리되고 (PHP경우) 작업 시 페이지 이동은 왠만하면 HTML의 a태그를 통해 이루어지게 작업해야 한다.

언어별로 HTTP_REFERRER을 확인하는 방법

  • ASP => Request.ServerVariables("HTTP_REFERER")

  • PHP => $_SERVER['HTTP_REFERER']

  • JSP => request.getHeader("REFERER")

-> 리턴값은 모두 스트링이다.

profile
연애하는 개발자

0개의 댓글