
PHP 강의
>PHP - 초급
📚 PHP 초급 - 8주차: 파일 입출력 및 쿠키/세션 - 04 $_SERVER 슈퍼 글로벌 변수 활용
![]() |
평점 | 10.0 | 라이센스 | free |
---|---|---|---|---|
사용자평점 | 10.0 | 운영체제 | ||
다운로드 | 1 | 파일크기 | 0 | |
제작사 | LUZENSOFT | 등록일 | 2025-07-08 16:02:03 | |
조회수 | 12 |
📚 PHP 초급 - 8주차: 파일 입출력 및 쿠키/세션 - 04 $_SERVER 슈퍼 글로벌 변수 활용
이번 주차 마지막 포스팅에서는 #PHP의 #슈퍼 #글로벌 #변수 중 하나인 $_SERVER
에 대해 자세히 알아보겠습니다. $_SERVER
는 #웹 #서버 환경 및 현재 실행 중인 스크립트에 대한 다양한 #정보를 담고 있어, #웹 개발 시 매우 유용하게 활용됩니다.
$_SERVER
란?
$_SERVER
는 #PHP가 #제공하는 #미리 정의된 #전역 #변수 중 하나로, #HTTP #헤더, #경로, #스크립트 위치 등 #웹 #서버와 #클라이언트의 요청에 관련된 #정보를 #연관 #배열 형태로 저장하고 있습니다. 이 #정보들은 #서버가 #웹 요청을 처리할 때 자동으로 생성되며, #개발자가 별도로 설정할 필요 없이 바로 접근하여 사용할 수 있습니다.
$_SERVER
의 주요 요소 및 활용
$_SERVER
#배열에는 다양한 #키(key)와 그에 해당하는 #값(value)이 저장되어 있습니다. 몇 가지 주요 #요소들을 예시와 함께 살펴보겠습니다.
1. #요청 #정보 확인
$_SERVER['REQUEST_METHOD']
: #현재 페이지에 #요청된 #HTTP #메소드를 반환합니다. (예:GET
,POST
,PUT
,DELETE
)PHP
<?php echo "요청 메소드: " . $_SERVER['REQUEST_METHOD']; // 출력 예: 요청 메소드: GET ?>
$_SERVER['REQUEST_URI']
: #현재 페이지의 #URI(Uniform Resource Identifier)를 반환합니다. 도메인 이후의 경로를 포함합니다. (예:/index.php?name=value
)PHP
<?php echo "요청 URI: " . $_SERVER['REQUEST_URI']; // 출력 예: 요청 URI: /mypage/index.php?id=1 ?>
$_SERVER['QUERY_STRING']
: #요청 #URL에서 물음표(?) 뒤의 #쿼리 #문자열을 반환합니다.PHP
<?php echo "쿼리 문자열: " . $_SERVER['QUERY_STRING']; // 출력 예 (URL이 /page.php?id=123&name=test일 때): 쿼리 문자열: id=123&name=test ?>
2. #클라이언트 #정보 확인
$_SERVER['REMOTE_ADDR']
: #페이지를 요청한 #클라이언트의 #IP 주소를 반환합니다.PHP
<?php echo "클라이언트 IP 주소: " . $_SERVER['REMOTE_ADDR']; // 출력 예: 클라이언트 IP 주소: 127.0.0.1 ?>
$_SERVER['HTTP_USER_AGENT']
: #클라이언트의 #웹 #브라우저 및 #운영 #체제 #정보를 담고 있는 #User-Agent #스트링을 반환합니다.PHP
<?php echo "사용자 에이전트: " . $_SERVER['HTTP_USER_AGENT']; // 출력 예: 사용자 에이전트: Mozilla/5.0 (Windows NT 10.0; Win64; x64) ... ?>
3. #서버 #정보 확인
$_SERVER['SERVER_NAME']
: #현재 스크립트가 실행되고 있는 #서버의 #도메인 이름을 반환합니다.PHP
<?php echo "서버 도메인: " . $_SERVER['SERVER_NAME']; // 출력 예: 서버 도메인: localhost 또는 www.example.com ?>
$_SERVER['SERVER_PORT']
: #웹 #서버의 #포트 번호를 반환합니다. (일반적으로 #HTTP는 80, #HTTPS는 443)PHP
<?php echo "서버 포트: " . $_SERVER['SERVER_PORT']; // 출력 예: 서버 포트: 80 ?>
$_SERVER['DOCUMENT_ROOT']
: #웹 #서버의 #문서 #루트 #디렉토리 경로를 반환합니다.PHP
<?php echo "웹 문서 루트: " . $_SERVER['DOCUMENT_ROOT']; // 출력 예: 웹 문서 루트: C:/Apache24/htdocs ?>
4. #스크립트 #정보 확인
$_SERVER['PHP_SELF']
: #현재 실행 중인 #스크립트의 #파일 이름을 반환합니다. (#URL 경로 포함)PHP
<?php echo "현재 스크립트 파일: " . $_SERVER['PHP_SELF']; // 출력 예: 현재 스크립트 파일: /mypage/index.php ?>
$_SERVER['SCRIPT_FILENAME']
: #현재 실행 중인 #스크립트의 #절대 #경로를 반환합니다.PHP
<?php echo "스크립트 절대 경로: " . $_SERVER['SCRIPT_FILENAME']; // 출력 예: 스크립트 절대 경로: C:/Apache24/htdocs/mypage/index.php ?>
$_SERVER
활용 예시
$_SERVER
#변수는 #로그인 #기능, #URL #라우팅, #보안 #검사, #사용자 #환경 #분석 등 다양한 곳에서 활용됩니다.
1. #GET/#POST #요청 구별
PHP
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
echo "이 요청은 POST 방식으로 전송되었습니다.";
} else {
echo "이 요청은 GET 방식으로 전송되었습니다.";
}
?>
2. #현재 #페이지의 #전체 #URL 얻기
PHP
<?php
$protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http";
$host = $_SERVER['HTTP_HOST'];
$uri = $_SERVER['REQUEST_URI'];
$current_url = $protocol . "://" . $host . $uri;
echo "현재 페이지의 전체 URL: " . $current_url;
// 출력 예: 현재 페이지의 전체 URL: http://localhost/mypage/index.php?id=1
?>
3. 특정 #IP 주소 접근 제한 (보안)
PHP
<?php
$blocked_ip = "192.168.1.100";
if ($_SERVER['REMOTE_ADDR'] === $blocked_ip) {
die("접근이 거부되었습니다.");
}
echo "환영합니다!";
?>
주의사항
$_SERVER
#변수에 담긴 #정보 중 일부는 #사용자가 조작할 수 있는 #HTTP #헤더에서 오는 것도 있습니다. 예를 들어, HTTP_USER_AGENT
나 HTTP_REFERER
같은 #정보는 #클라이언트 측에서 쉽게 위조될 수 있으므로, #보안에 민감한 #작업에는 그대로 신뢰해서는 안 됩니다. 항상 #사용자 #입력을 검증하는 습관을 들이세요.
이번 포스팅에서는 #PHP의 강력한 #슈퍼 #글로벌 #변수 $_SERVER
의 다양한 #요소들과 #활용 방법에 대해 알아보았습니다. $_SERVER
는 #웹 #개발의 기본적인 #요소들을 이해하고 #웹 #애플리케이션을 더 유연하게 구축하는 데 큰 도움이 될 것입니다.