오늘 하루에 집중하자
  • [CS] CGI(Common Gateway Interface), 웹 컨텐츠의 이해(정적, 동적)
    2022년 12월 11일 22시 49분 49초에 업로드 된 글입니다.
    작성자: nickhealthy

    CGI(Common Gateway Interface)란?

    CGI란 공통 게이트웨이 인터페이스(Common Gateway Interface)의 약어로, 웹 서버와 외부 프로그램 사이에서 정보를 주고받는 방법이나 규약들을 말한다.

     

    웹 서버와 응용프로그램이 상호 작용하여 동적 컨텐츠를 제공해주고, 웹 서버와 수많은 언어들로 만든 프로그램이 상호 작용하기 위한 표준화 된 약속이 필요한데, 바로 그 약속이 CGI(Common Gateway Interface) 기술이다.

     

    CGI의 기능

    웹 서버 프로그램의 핵심 기능은 미리 준비된 정보를 클라이언트의 요구에 응답하는 것이다. 즉, 초기의 웹 서버는 이미 준비된 자료인 '정적 컨텐츠'의 정보만 제공해 줄 수 있었다.

     

    사용자로부터 입력을 받아 정보를 동적으로 생성하고 클라이언트에게 송신하기 위해서는 응용프로그램의 로직을 수행한 후 웹 서버에게 정보를 전달하고, 웹 서버는 클라이언트에게 정보를 전송해주어야 한다. 이를 실현하기 위해 탄생한 기술이 CGI(Common Gateway Interface)이다. 또 다양한 프로그램 언어로 응용프로그램들이 개발되는데 웹 서버와 응용 프로그램이 상호작용하며, 동적 컨텐츠를 제공해주기 위해서는 둘 사이의 표준화 된 약속이 필요하다. 그 약속을 뜻하는 것 또한 CGI 기술이라고 할 수 있다.

     

    정리하자면 웹 서버도 종류가 여러가지 일 것이고, 프로그램 또한 다양한 프로그램이 존재하기 때문에 서로 입출력을 주고 받을 표준이 필요하다. 이 표준에 맞추어 만들어진 것이 CGI 스크립트이다. CGI 스크립트는 어떤 프로그래밍 언어로도 만들 수 있다.(C, Perl, Python 등으로 구현 가능)

     

    CGI 동작 방식의 핵심은 웹 서버가 사용자의 요청을 받았을 때, 그 요청과 관련해서 웹 어플리케이션이 어떠한 처리를 할 수 있도록 '환경변수'라는 형태로 전달하는 것이다.

     

    웹 컨텐츠의 이해(정적, 동적)


    정적 컨텐츠

    서버에 존재하는 이미 저장된 파일(HTML, 이미지, 스크립트 등)

    - 실시간으로 변경할 필요가 없는 데이터, 변화가 없는 데이터를 뜻하며, 어떤 사용자에게든 동일한 모습으로 반환한다.

    - 웹 서버 시스템에 데이터를 저장해두고, 클라이언트의 요청이 있을 때 해당 데이터를 반환해준다.

     

    동적 컨텐츠

    사용자의 요청에 따라 각각 다른 형태의 데이터를 반환한다.

    동적 컨텐츠는 WAS(정적 웹 서버 + 응용 프로그램)에서 동적으로 데이터를 생성하여 클라이언트에게 결과를 반환해준다.

    따라서 사용자마다 보여지는 데이터는 달라지게 된다.(은행 잔고, 회원 정보 등)

     

     

     


    Ref

    CGI - 위키백과

    CGI와 웹서버

     

    댓글