[WEB] CGI(Common Gateway Interface) 어디서 들어봤는데..

[WEB]CGI 

웹서버와 외부 프로그램(client도 가능) 사이에서 정보를 주고받는 방법인 규약들
  • CGI : client에서 서버에 요청을 넣으면 Application(ex shell script 등등)을 돌려서 나온  결과를 HTML형식으로 보여주는것
  • 게이트 웨이 : 서버 컴퓨터에서는 존재하지만 웹 서버 프로그램을 통해서는 접근 할 수 없는 다른 프로그램의 입구
    • ex) 일반적인 웹 브라우져로 웹 서버 프로그램 접속한 경우, 서버 컴퓨터에 있는 mysql db에는 절대로 직접 접근 불가
      그러나 mysql를 다룰 수 있는 CGI를 사용하면 웹 브라우져를 통해 mysql에 접근 가능
  • 웹페이지는 HTML언어에 의해서 기본적으로 만들어짐.
    하지만 HTML만으로 모든 정보를 다 처리 불가능.(보여주는 역할만 함)
    따라서 홈페이지를 양방향으로 할 필요가 있음
    CGI : 외부 프로그램을 수행하여 그 결과를 HTML형태로 보여주는 방식


쉽게 설명하면, 두 개 이상의 컴퓨터간의 자료들을 주고 받는 프로그램 또는 주고받는 것 자체

  • 원래 웹이란 것은, 일반적인 정보의 전송만이 가능했다.
    • 사용자는 보내고, 서버는 받아서 처리한 후 사용자에게 보내줌
  • 이전 : 서버 -> 클라이언트            단방향성
  • 현재 : 웹서버 <-> 클라이언트        양방향성
    • CGI를 이용하면 웹 서버측에서도 client의 동향 및 의사를 수렴해서 일방적이 아닌 양방향으로 적용 가능

  • CGI는 사용자의 요청에 의한 서버의 응답
    • ex) 방명록이나 게시판
  • CGI는 응용 프로그램이기 때문에 html로 만들수는 없고 웹 서버의 환경에 따라 다르게 구현
    • ex) C, Perl 등등으로 만듬

  • 장점 : CGI는 외부 프로그램을 실행하는 표준방식으로 사용이 편리하다
  • 단점 : 서버에서 많은 프로그램을 수행하므로 서버에 무리를 줌

  • cf) PHP, ASP가 발전함에 따라 많은 사람이 CGI와 오해를 한다
    • PHP, ASP는 CGI를 만들기 위한 한가지 스크립팅 언어일 뿐이다.
    • PHP, ASP와 CGI는 상하관계

출처
  • http://sfeg.tistory.com/196
  • http://www.emh.co.kr/content.pl?perl_cgi_basics
  • https://www.linux.co.kr/unixwebhosting/cgi/cgi01.htm

댓글

이 블로그의 인기 게시물

[Python] # -*- coding: utf-8 -*-를 쓰는 이유

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?