추천, 2024

에디터의 선택

CGI와 서블릿의 차이점

CGI 및 서블릿은 웹 또는 응용 프로그램 서버 내에 상주하며 웹 서버와 브라우저 (클라이언트 측) 사이의 통신을 지원하여 동적으로 웹 컨텐트를 생성하는 프로그램입니다. CGI와 서블릿은 다른 방식으로 작동하고 서로 다른 기능과 특징을 가지고 있기 때문에 차별화 될 수 있습니다. CGI (Common Gateway Interface) 프로그램은 기본 OS에서 설계하고 특정 디렉토리에 보관할 수 있습니다. 반면 서블릿은 일반적으로 Java로 작성되고 Java 가상 머신에서 실행되는 웹 구성 요소입니다.

비교 차트

비교 근거CGI서블릿
기본프로그램은 원시 OS로 작성됩니다.자바를 사용하는 프로그램.
플랫폼 의존성플랫폼에 따라 다름플랫폼에 의존하지 않습니다.
프로세스 생성각 클라이언트 요청은 자체 프로세스를 작성합니다.프로세스는 클라이언트 요청의 유형에 따라 작성됩니다.
스크립트 변환실행 파일 (서버 OS 고유)의 형태로 제공됩니다.Java 바이트 코드로 컴파일됩니다.
에 실행별도의 프로세스JVM
보안공격에 더 취약합니다.공격에 저항 할 수 있습니다.
속도천천히빨리
스크립트 처리곧장스크립트를 실행하기 전에 스크립트가 번역되고 컴파일됩니다.
이식성포팅 할 수 없습니다.가지고 다닐 수 있는

CGI의 정의

CGI (Common Gateway Interface) 는 대화식 웹 페이지를 실행할 수 있도록 웹 서버에서 외부 프로그램 (CGI 스크립트)을 처리하는 인터페이스입니다. CGI는 1993 년 NCSA (National Center for Supercomputing Applications) 에 의해 개발되었습니다. 서버 측에 상주하며 웹 브라우저가 웹 서버의 프로그램과 상호 작용할 수있게합니다. 예를 들어, 웹 페이지가 데이터베이스를 쿼리하거나 사용자가 CGI 스크립트가 호출 될 때 서버에 양식 정보를 제출하는 경우입니다. 서버는 GET 또는 POST 두 가지 방법으로 해당 정보를 응용 프로그램에 전달한 다음 응용 프로그램이 서버에 응답하여 브라우저에 다시 연결합니다. 이 방법으로, 브라우저는 사용자에 대해 몇 가지 결과를 얻습니다.

CGI는 CGI 스크립트를 실행하고 특정 프로그램에 대한 결과를 다시 서버에 제공하는 방법을 설명하기위한 규정입니다. CGI의 기능은 브라우저에서받은 정보를 스캔하여 적절한 응답을 생성하는 것입니다. 작업 완료 후 CGI 스크립트가 종료됩니다. Common Gateway Interface에서 공용은 모든 운영 체제 또는 프로그래밍 언어에서 정상적으로 작동 할 수 있음을 나타냅니다.

이전에는 UNIX 셸 스크립트와 PERL이 CGI 프로그램을 작성하는 데 사용되어 CGI "스크립트" 라는 이름이 붙여졌습니다. 그러나 이제는 C, C ++, Perl, Visual Basic 또는 Python과 같은 언어를 사용할 수 있습니다. 웹 서버는 실행 파일을 특정 디렉토리에서 CGI 프로그램으로 처리 할 수 ​​있기 때문에 CGI는 잠재적 보안 문제를 이끌 수 있습니다. CGI는 별도의 프로세스로 각 클라이언트 요청을 처리하므로 서버로드가 증가하므로 처리 속도가 느려집니다.

서블릿 정의

서블릿 은 웹 브라우저 또는 HTTP 클라이언트와 HTTP 서버 간의 상호 작용을 용이하게하는 중간 프로그램 역할을하는 Java 기반 웹 구성 요소입니다. 서블릿은 CGI와 마찬가지로 웹 페이지 양식을 사용하여 정보를 수집하고 데이터베이스에서 레코드를 표시하며 컨테이너를 사용하여 동적 웹 페이지를 생성하는 데 사용할 수 있습니다. 서블릿은 플랫폼에 의존하지 않고 플랫폼에 독립적 인 바이트 코드로 컴파일 된 Java 클래스입니다. 플랫폼 중립 바이트 코드는 Java 웹 서버에 의해 동적으로 저장되고 실행될 수 있습니다. 서블릿은 소켓과 RMI 메커니즘을 사용하여 애플릿, 데이터베이스 또는 다른 데이터베이스 프로그램 간의 연결을 설정합니다.

서블릿 컨테이너는 HTTP 및 HTTPS 프로토콜 을 지원하는 웹 서버의 일부입니다. HTTP / HTTPS 프로토콜을 사용하여 요청 / 응답 방법을 사용하여 웹 클라이언트와 상호 작용할 수 있습니다. CGI와 달리 서블릿은 웹 서버의 주소 공간에서 실행되며 각 클라이언트는 반드시 개별적으로 처리되지 않습니다. 서블릿에서 서버의 리소스를 보호하기 위해 서버에 제약 조건 모음이 적용됩니다.

CGI와 서블릿의 주요 차이점

  1. CGI 스크립트는 네이티브 OS로 작성되어 특정 디렉토리에 저장됩니다. 반면 서블릿 프로그램은 대개 Java로 작성되어 Java 바이트 코드로 컴파일되고 JVM에서 실행됩니다.
  2. CGI는 플랫폼에 따라 다르므로 운영 체제간에 전환하기가 어렵습니다. 반대로, 서블릿은 JVM이 설치된 운영 체제에서 실행될 수 있으므로 플랫폼에 독립적입니다.
  3. CGI에서 도달하는 각 클라이언트 요청은 서블릿, 프로세스가 불필요하게 생성되지 않고 JVM의 메모리 공간을 공유하는 동안 별도의 프로세스를 생성 할 수 있습니다.
  4. CGI 스크립트는 서버의 원시 OS에 작성된 실행 가능 프로그램입니다. 반대로 서블릿은 JVM에서 실행되는 Java 바이트 코드로 컴파일됩니다.
  5. Servlet은 Java를 사용하기 때문에 CGI보다 안전합니다.
  6. 서블릿의 속도, 성능 및 효율성은 CGI보다 우수합니다.
  7. CGI 스크립트는 직접 처리 할 수 ​​있습니다. 반대로 서블릿은 먼저 프로그램을 변환하고 컴파일 한 다음 처리합니다.
  8. CGI가 아닌 동안 이식성 서블릿은 이식 가능합니다.

결론

CGI와 서블릿은 같은 방식으로 작동하지만 서블릿은 빠르고 안전하며 플랫폼 독립적이며 쉽게 개발할 수 있으며 여러 API를 통해 액세스 할 수 있고 다양한 웹 서버에서 지원되므로 서블릿을 CGI보다 유리하게 사용할 수 있습니다.

Top