이번에는 PHP에서 기본적으로 제공하는 환경 변수인 $_SERVER 배열에 대해서 기록합니다
$_SERVER 변수를 사용해서 웹 서버와 PHP 환경을 확인할 수 있습니다
만약 $_SERVER변수의 모든 값을 확인해보고 싶다면 아래와 같이 코드를 작성해서 실행해보세요
모든 값들을 확인할 수 있습니다
<?php
echo "<pre>";
print_r($_SERVER);
echo "</pre>";
?>
요소명 | 설명 | 예시 |
HTTP_ORIGIN | HTTP 주소 * 이 값은 모든 브라우저에서 보내는것도, 신뢰할 수 있는 것도 아니라서 이 값 대신에 "HTTP_REFERER"을 권장한다고 함 |
https://estrella13.tistory.com |
HTTP_REFERER | HTTP 전체 주소 | https://estrella13.tistory.com/stella/index.php?page=3&type=p |
HTTP_HOST | 사이트 도메인 주소 | estrella13.tistory.com |
SERVER_NAME | 웹 호스트명 | estrella13.tistory.com |
SCRIPT_FILENAME | 현재 페이지의 절대 경로 | /estrella/main/stella/index.php |
DOCUMENT_ROOT | 루트 디렉토리 경로 | /estrella/main |
REQUEST_URI | 현재 파라미터가 포함된 URI | /stella/index.php?page=3&type=p |
SCRIPT_NAME | 루트 경로를 제외한 현재 페이지의 절대 경로 | /stella/index.php |
PHP_SELF | 현재 주소에서 도메인과 파라미터를 제외한 주소 | /stella/index.php |
QUERY_STRING | GET 파라미터 리스트 | page=3&type=p |
REQUEST_METHOD | 메소드 형식 * GET, POST, HEAD, PUT 등등 |
POST |
SERVER_ADDR | 웹 IP | xxx.xxx.xxx.xxx |
REMOTE_ADDR | 사용자 IP | xxx.xxx.xxx.xxx |
SERVER_PORT | 웹 서버 포트 번호 | 80 |
REMOTE_PORT | 포트 번호 | 2653 |
SERVER_ADMIN | 웹 서버 설정 파일에서 SERVER_ADMIN(Apache의 경우) 디렉티브(directive)에 설정된 값 | root@localhost |
SERVER_PROTOCOL | 페이지가 요청된 프로토콜 버전 | HTTP/1.1 |
GATEWAY_INTERFACE | 서버의 CGI 버전 | CGI/1.1 |
REQUEST_TIME | 페이지 요청 시간 타임스탬프(정수형) | 1548294286 |
REQUEST_TIME_FLOAT | 페이지 요청 시간 타임스탬프(실수형) | 1548294286.046 |
SERVER_SOFTWARE | 웹서버 정보 | Apache/2.2.15 (CentOS) |
HTTP_USER_AGENT | 사용자의 웹 접속 환경 * 이 값으로 사용자가 모바일인지 PC인지 구분할 수 있다(사용 방법은 표 하단 확인) |
Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36 |
HTTP_CONNECTION | 커넥션 헤더 정보 * HTTP는 connection less 방식이다(파일 전송을 할 때마다 소켓을 열고 닫는다) * keep-alive : 정해진 시간동안 클라이언트의 요청이 또 있으면 소켓을 새로 열지 않고 기존 소켓으로 전송한다(=정해진 시간 내에 요청이 이루어지면 한 번 연결된 상태를 유지할 수 있다) |
keep-alive |
CONTENT_LENGTH | 전송 내용 크기 (단위 : byte) |
2078 |
HTTP_CACHE_CONTROL | HTTP 캐시 제어 | max-age=0 |
HTTP_UPGRADE_INSECURE_REQUESTS | 안전하지 않은 요청에 대한 HTTP 업그레이드 여부 | 1 |
CONTENT_TYPE | 통신 데이터의 형식 * application/json : json형식으로 전송 * application/x-www-form-urlencoded : A=a&B=b 의 형식으로 전송 |
application/x-www-form-urlencoded |
HTTP_ACCEPT | 사이트 타입 | text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 |
HTTP_ACCEPT_ENCODING | 인코딩 방식 | gzip, deflate |
HTTP_ACCEPT_LANGUAGE | 사이트 언어 | en-US,en;q=0.9,ko;q=0.8 |
HTTP_COOKIE | 현재 쿠키 정보 | ...... |
PATH | 실행 위치 | /sbin:/usr/sbin:/bin:/usr/bin |
SERVER_SIGNATURE | 서버상 페이지에 추가되는 서버 정보 | <address>Apache/2.2.15 (CentOS) Server at estrella13.tistory.com Port 80</address> |
$_SERVER['HTTP_USER_AGENT']를 활용해서 모바일/PC를 구분하는 방법!!
'웹 Back-End > PHP' 카테고리의 다른 글
[PHP] print_r() 함수 (0) | 2022.01.06 |
---|---|
[PHP] ob_start() 함수 (출력 버퍼링) (0) | 2022.01.06 |
[PHP Laravel] Laravel 프레임워크 기본 배우기 (0) | 2022.01.05 |
[PHP] 페이지 수행시간 확인하기 (0) | 2021.11.19 |
[PHP] 모바일/PC 구분하기 (0) | 2021.11.10 |