$_SERVER


$_SERVER 슈퍼변수는 서버 정보를 저장합니다. 브라우저를 통하여 PHP 스크립트를 실행할 때 서버의 정보를 PHP에서 확인할 수 있도록 제공하는 배열변수입니다.

PHP는 웹 개발 용도로 많이 사용을 합니다. 또한 웹 서버와 언어에 최적화된 환경을 제공하는 의미도 있습니다. 따라서 이러한 $_SERVER 같은 슈퍼변수들을 제공하고 있습니다.

다음은 $_SERVER 에서 사용되는 배열 값들에 대한 상세한 설명입니다:

$_SERVER[‘PHP_SELF’]
PHP_SELF는 현재 실행하고 있는 PHP 스크립트 파일명을 출력합니다. 이는 HTML폼 ACTION 스크립트 경로를 입력할 때 유용하게 사용을 합니다.

예제 파일 server-01.php

<?php
	echo $_SERVER['PHP_SELF'];
?>

출력 화면

$_SERVER[‘GATEWAY_INTERFACE’]
사용 중인 CGI (Common Gateway Interface)의 버전을 반환합니다.

$_SERVER[‘SERVER_ADDR’]
호스트 서버의 IP주소를 알 수 있습니다.

$_SERVER[‘SERVER_NAME’]
호스트 서버의 이름(도메인)을 알 수 있습니다.

$_SERVER[‘SERVER_SOFTWARE’]
서버의 소프트웨어 환경. 서버 식별 문자열 (예: Apache / 2.2.24)을 반환합니다.

$_SERVER[‘SERVER_PROTOCOL’]
프로토콜의 이름, 버전, 정보를 반환합니다(예: HTTP / 1.1).

예제 파일 server-02.php

<?php
	echo "SERVER_ADDR = ".$_SERVER['SERVER_ADDR'];
	echo "<br>";
	echo "SERVER_NAME = ".$_SERVER['SERVER_NAME'];
	echo "<br>";
	echo "SERVER_SOFTWARE = ".$_SERVER['SERVER_SOFTWARE'];

	echo "<br>";
	echo "SERVER_PROTOCOL = ".$_SERVER['SERVER_PROTOCOL'];
?>

출력 화면

  • $_SERVER[‘REQUEST_METHOD’]
    페이지 접속 방식을 POST/GET 을 반환합니다.

$_SERVER[‘REQUEST_TIME’]
접속 타임 스탬프를 반환합니다

$_SERVER[‘REQUEST_URI’]
현재 페이지 주소에서 도메인을 제외한 값을 반환합니다.

$_SERVER[‘HTTP_USER_AGENT’]
사이트에 접속한 클라이언트 프로그램 정보를 반환합니다.

$_SERVER[‘APPLPHYSICAL_PATH’]
현재 페이지의 실제적인 주소를 반환합니다.

예제 파일 server-03.php

<?php
	if($_SERVER['REQUEST_METHOD'] == "GET"){
		echo "GET 방식으로 접속하였습니다.<br>";
	} else if($_SERVER['REQUEST_METHOD'] == "POST"){
		echo "POST 방식으로 접속하였습니다.<br>";		
	} else {

	}

	echo "REQUEST_TIME = ".$_SERVER['REQUEST_TIME'];
	echo "<br>";

	echo "REQUEST_URI = ".$_SERVER['REQUEST_URI'];
	echo "<br>";

	echo "HTTP_USER_AGENT = ".$_SERVER['HTTP_USER_AGENT'];
	echo "<br>";

	echo "APPLPHYSICAL_PATH = ".$_SERVER['APPLPHYSICAL_PATH'];
	echo "<br>";
?>

출력 화면

$_SERVER[‘QUERY_STRING’]
쿼리 문자열을 통해 페이지에 액세스한 경우 쿼리 문자열을 반환합니다.

예제 파일 server-04.php

<?php
	echo "QUERY_STRING = ".$_SERVER['QUERY_STRING'];
	echo "<br>";
?>

출력 화면

스크립트 다음에 쿼리를 같이 입력합니다. server-05.php?a=1&b=2

$_SERVER[‘HTTP_ACCEPT’]
현재 요청에 대한 헤더를 반환합니다.

$_SERVER[‘HTTP_ACCEPT_CHARSET’]
현재 요청(예: utf-8, ISO-8859-1)에서 Accept_Charset 헤더를 반환합니다.

$_SERVER[‘HTTP_ACCEPT_ENCODING’]
인코딩 방식 예)gzip, deflate

$_SERVER[‘HTTP_ACCEPT_LANGAGE’]
언어 예)ko

$_SERVER[‘HTTP_HOST’]
현재 요청에서 Host 헤더를 반환합니다.

$_SERVER[‘HTTP_REFERER’]
현재 페이지로 오기 전의 페이지 URL을 반환합니다. , <form> 태그 등으로 넘어올 때 표시됩니다.

$_SERVER[‘SERVER_ADMIN’]
웹 서버 설정 파일에서 SERVER_ADMIN 지시어에 주어진 값을 반환합니다. (스크립트가 가상 호스트에서 실행되는 경우 가상 호스트에 대해 정의된 값이 됩니다.)

$_SERVER[‘SERVER_PORT’]
서버 포트를 확인합니다.

$_SERVER[‘SERVER_SIGNATURE’]
서버 생성 페이지에 추가되는 서버 버전 및 가상 호스트 이름을 반환합니다.

예제 파일 server-05.php

<?php
	echo "HTTP_ACCEPT = ".$_SERVER['HTTP_ACCEPT'];
	echo "<br>";

	echo "HTTP_ACCEPT_CHARSET = ".$_SERVER['HTTP_ACCEPT_CHARSET'];
	echo "<br>";

	echo "HTTP_ACCEPT_ENCODING = ".$_SERVER['HTTP_ACCEPT_ENCODING'];
	echo "<br>";

	echo "HTTP_ACCEPT_LANGUAGE = ".$_SERVER['HTTP_ACCEPT_LANGUAGE'];
	echo "<br>";

	echo "HTTP_HOST = ".$_SERVER['HTTP_HOST'];
	echo "<br>";

	echo "HTTP_REFERER = ".$_SERVER['HTTP_REFERER'];
	echo "<br>";

	echo "SERVER_ADMIN= ".$_SERVER['SERVER_ADMIN'];
	echo "<br>";

	echo "SERVER_PORT = ".$_SERVER['SERVER_PORT'];
	echo "<br>";

	echo "SERVER_SIGNATURE = ".$_SERVER['SERVER_SIGNATURE'];
	echo "<br>";
?>

출력 화면

$_SERVER[‘HTTPS’]
https 프로토콜 여부를 확인합니다.

예제 파일 server-06.php

<?php
	if($_SERVER['HTTPS'] == "on"){
		echo "https://";
	} else {
		echo "http://";
	}
?> 

$_SERVER[‘REMOTE_ADDR’]
사용자 클라이언트가 접속한 IP 주소를 반환합니다. 예) 192.168.0.3

$_SERVER[‘REMOTE_HOST’]
사용자 클라이언트가 접속한 호스트명를 반환합니다.

$_SERVER[‘REMOTE_PORT’]
사용자 클라이언트가 접속한 포트를 반환합니다.

예제 파일 server-07.php

<?php
	echo "REMOTE_ADDR = ".$_SERVER['REMOTE_ADDR'];
	echo "<br>";

	echo "REMOTE_HOST = ".$_SERVER['REMOTE_HOST'];
	echo "<br>";

	echo "REMOTE_PORT = ".$_SERVER['REMOTE_PORT'];
	echo "<br>";

	echo "REMOTE_ADDR = ".$_SERVER['REMOTE_ADDR'];
	echo "<br>";

?>

$_SERVER[‘PATH_TRANSLATED’]
현재 스크립트에 대한 파일 시스템 기반 경로를 반환합니다.

$_SERVER[‘SCRIPT_FILENAME’]
현재 실행중인 스크립트의 절대 경로 이름을 반환합니다.

$_SERVER[‘SCRIPT_NAME’]
현재 스크립트의 경로를 반환합니다.

$_SERVER[‘SCRIPT_URI’]
현재 페이지의 URI를 반환합니다.

예제 파일 server-08.php

<?php
	echo "PATH_TRANSLATED = ".$_SERVER['PATH_TRANSLATED'];
	echo "<br>";

	echo "SCRIPT_FILENAME = ".$_SERVER['SCRIPT_FILENAME'];
	echo "<br>";

	echo "SCRIPT_NAME = ".$_SERVER['SCRIPT_NAME'];
	echo "<br>";

	echo "SCRIPT_URI = ".$_SERVER['SCRIPT_URI'];
	echo "<br>";
?>

출력 화면

이 책에서 설명하지 못하는 기능들과 슈퍼변수들은 공식 사이트 php.net의 정보를 확인하기를 바랍니다.