[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
댓글
댓글 쓰기