웹 기술 기초

CGI에서는 웹 서버가 요청을 받을 때마다 프로그램을 새로운 프로세스로 기동하고, 처리가 끝나면 프로세스는 종료된다. FastCGI나 애플리케이션 서버 방식이 CGI에 비해 많은 요청을 효율적으로 처리할 수 있는 주된 이유는?

  1. A프로그램의 프로세스를 상주시켜 재사용하므로, 요청마다 프로세스를 기동하고 초기화하는 수고를 덜 수 있다
  2. BHTTP 대신 UDP로 이용자와 통신하므로, 요청할 때마다 TCP 연결을 설정하는 수고가 없어진다
  3. C프로그램을 브라우저로 보내 브라우저 안에서 실행하게 하므로, 서버에서는 요청 처리를 하지 않아도 된다
정답과 해설 보기

정답: A. 프로그램의 프로세스를 상주시켜 재사용하므로, 요청마다 프로세스를 기동하고 초기화하는 수고를 덜 수 있다

CGI는 웹 서버가 요청 정보를 환경 변수나 표준 입력으로 프로그램에 넘기고, 프로그램이 표준 출력에 쓴 결과를 응답으로 돌려주는 단순한 구조입니다. 다만 요청마다 프로세스를 기동하고, 언어 런타임의 로드나 데이터베이스 접속을 매번 다시 하므로, 요청이 많으면 부하가 커집니다. FastCGI나 각 언어의 애플리케이션 서버는 프로그램을 상주시키고, 웹 서버와 소켓 등으로 연결하여 많은 요청을 반복해서 처리합니다.

이 분야 연습하기 분야로 돌아가기

웹 기술 기초의 다른 문제

  1. 웹사이트의 페이지를 만드는 방식 중, 빌드 단계에서 모든 페이지의 HTML 파일을 미리 생성해 두고, 요청에는 그 파일을 그대로 돌려주는 방식은?
  2. HTTP/1.1 요청의 첫 줄(요청 라인)에 나열되는 요소의 조합으로 올바른 것은?
  3. HTTP 메서드 중 '안전'(서버상의 리소스 상태를 바꾸는 것을 의도하지 않음)하지는 않지만 '멱등'(같은 요청을 몇 번 보내도 한 번 보냈을 때와 같은 상태가 됨)한 것은?
  4. HTTP의 상태 코드와 그 의미의 조합으로 올바른 것은?
  5. 회원제 웹사이트에서 로그인한 일반 회원이 관리자에게만 허용된 페이지를 요청했다. 서버는 이용자가 누구인지 확인했지만, 이 페이지에 대한 접근은 허가하지 않는다. 이때 돌려줄 상태 코드로 가장 적절한 것은?