참고 1: 위키백과 - CGI
참고 2: IBM Documentation
CGI 란?
공용 게이트웨이 인터페이스(Common Gateway Interface; CGI)는 웹 서버 상에서 사용자 프로그램을 동작시키기 위해, 데이터를 주고받는 방식 또는 규약입니다. 우리는 동적인 웹 서버를 구현하기 위해, 서버에서 외부 프로그램을 불러내고 그 처리 결과를 클라이언트에 송신합니다.
CGI 스크립트의 환경 변수
CGI를 실행할 때 서버와 브라우저는 각자의 환경변수를 교환하며, 이는 대부분 서버에서 전달된 요청에 대한 데이터를 나타냅니다.
우리가 구현할 CGI에서는 다음과 같은 환경변수를 설정하여 전달합니다.
변수 | 설명 | 디폴트 |
AUTH_TYPE | 인증 방법(BASIC, SSL 등). | null (인증되지 않음) |
CONTENT_LENGTH | 요청 본문의 길이(바이트). | -1 (알 수 없음) |
CONTENT_TYPE | 요청 본문의 MIME 유형. | null (알 수 없음) |
GATEWAY_INTERFACE | CGI 스펙의 버전. | CGI/1.1 |
PATH_INFO | 스크립트를 호출한 HTTP 요청의 추가 경로. CGI 스크립트로 해석할 경로. | |
PATH_TRANSLATED | PATH_INFO의 변환. 스크립트의 가상경로를, 실제 호출 할 때 사용되는 경로로 맵핑. 요청 URI의 PATH_INFO 구성요소를 가져와, 적합한 가상 : 실제 변환을 수행하여 맵핑. |
|
QUERY_STRING | 경로 뒤의 요청 URL에 포함된 조회 문자열. | |
REMOTE_ADDR | 요청을 보낸 클라이언트 IP 주소. | |
REMOTE_IDENT | Identification. 클라이언트에서 GCI 프로그램을 실행시킨 사용자. | |
REMOTE_USER | 사용자가 인증된 경우 이 요청을 작성한 사용자의 로그인을 의미. | null (인증되지 않음) |
REQUEST_METHOD | 요청 HTTP 메소드 이름. (GET, POST, PUT) | |
REQUEST_URI | 현재 페이지 주소에서 도메인을 제외한 값. | |
SCRIPT_NAME | HTTP 요청의 첫 번째 라인에 있는 조회 문자열까지의 URL. | |
SERVER_NAME | 요청을 수신한 서버의 호스트 이름. | |
SERVER_PORT | 요청을 수신한 서버의 포트 번호. | |
SERVER_PROTOCOL | 요청이 사용하는 프로토콜의 이름과 버전. protocol/majorVersion.minorVersion 양식 (예: HTTP/1.1) |
|
SERVER_SOFTWARE | 서블릿이 실행 중인 컨테이너의 이름과 버전. |
반응형
'42Seoul > 웹서버' 카테고리의 다른 글
HTTP 헤더에 따른 콘텐츠 협상 (Content negotiation) (0) | 2021.05.16 |
---|---|
docker run시 컨테이너 내의 파일 수정하기(환경변수 + sed명령어) (0) | 2020.11.01 |
도커에서 nginx + php-fpm 설치하기 (0) | 2020.10.21 |
Dockerfile을 작성하고 Docker 실행하기 (1) | 2020.10.20 |