본문 바로가기
✨ Back-end/Servlet

서블릿(Servlet)과 CGI ( Common Gateway Interface ) 차이

by 환풍 2023. 8. 8.
728x90

 

서블릿이란?

자바 프로그래밍을 사용한 웹 어플리케이션
  • 서버에서 실행되는 동적 컨텐츠를 생성해내는 자바 기반의 웹 컴포넌트이며 servlet container에 의해 관리된다.
  • 바이트 코드로 컴파일된 플랫폼 독립적인 자바 클래스로 서블릿 컨테이너에 의해 동적으로 로드되고 실행된다.

서블릿의 주요 특징

  • 클라이언트의 Request에 대해 동적으로 작동하는 웹 어플리케이션
  • 기존의 정적 웹 프로그램의 문제점을 보완해 동적인 여러 기능을 제공
  • JAVA의 스레드를 이용해 동작
  • MVC패턴에서 컨트롤러로 이용
  • 컨테이너에서 실행
  • 보안 기능을 적용하기 쉬움

CGI란?

대화식 웹 페이지를 실행할 수 있도록 웹 서버에서 외부 프로그램을 처리하는 인터페이스
  • 웹 서버와 외부 프로그램간의 데이터를 주고받는 방법에 대한 규격
  • 웹 서버가 동적인 콘텐츠도 제공할 수 있게하는 방법

 

  CGI (Common Gateway Interface) 서블릿(Servlet)
기본 원시 OS로 작성 자바를 사용
의존성 플랫폼에 따라 상이 플랫폼에 의존하지 않음
프로세스 생성 각 클라이언트 요청은 자체 프로세스를 작성 클라이언트 요청의 유형에 따라 작성
스크립트 변환 실행 파일의 형태로 제공 Java 바이트 코드로 컴파일
실행 별도의 프로세스 JVM
보안 공격에 더 취약 공격에 저항 가능
속도 느림 빠름

 

결과적으로,

서블릿과 CGI는 같은 방식으로 작동하나, 서블릿은 빠르고 안전하며 플랫폼에 의존하지 않아 쉽게 개발할 수 있다.

여러 API를 통해 액세스 할 수 있고 다양한 웹 서버에서도 지원가능하므로 서블릿을 CGI보다 유리하게 사용가능하다.

반응형

댓글