Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- SpringBoot Mybatis
- 랭킹정렬
- 비디오 태그 썸네일
- 자바
- src/main/java
- 순위정렬
- 정수 자료형
- html input
- 스프링부트 jsp 연결
- sql 테이블명 바꾸기
- Failed to configure a DataSource
- 자바 #Java #Scanner #스캐너 #자바알파벳입력
- spring jsp
- 스프링부트
- 스프링부트 오류
- 스프링 jsp
- jsp 연결
- 스프링부트 마이바티스
- 자바마스터
- video tag
- @PathVariable
- 스프링 jsp 연결
- html video thumbnail
- 자바정렬
- HTML
- 정신차리고공부하자 #개발자되기 #몰입하자
- 자바 순위정렬
- MySQL 테이블명 바꾸기
- 비디오 태그 이미지
- selection does not contain a main type
Archives
- Today
- Total
쌤리
CGI와 서블릿 그리고 톰캣 본문
- CGI (공용 게이트웨이 인터페이스, Common Gateway Interface)
- 별도로 제작된 웹 서버와 프로그램간의 교환방식을 의미한다.
- CGI방식은 어떠한 프로그래밍언어로도 구현이 가능하다.
- 별도로 만든 프로그램에 HTML의 Get, Post 방법으로 클라이언트의 데이터를 환경변수로 전달하고, 프로그램의 표준 출력 결과를 클라이언트에게 전송한다. 즉, 자바 어플리케이션 코딩을 하듯 웹 브라우저용 출력 화면을 만드는 방법이다.
- 동적인 HTML, 데이터베이스 질의 처리 등에 사용된다.
- 서버에서 프로세스 단위로 실행되는데, 사용자의 요청이 많을때 서버에 부하가 크게 발생하게 되었고, 프로세스 보다 더 작은 단위로 실행하는 것이 필요했다. 그리고 웹 서버의 프로세스로서 인터프리터를 상주시키고, 스레드 단위로 실행하여 부하를 줄임으로써 성능을 개선한 자바 서블릿이 등장했다.
- 서블릿 (Servlet)
- 서블릿이란 톰캣이 이해할 수 있는 순수 자바 코드로만 이루어진 웹 서버용 클래스이다.
- 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 서블릿은 자바로 구현 된 CGI를 의미한다.
- 클라이언트의 요청에 대해 동적으로 작동하는 웹 어플리케이션 컴포넌트이며, HTML을 사용하여 요청에 응답하며고 Java Thread를 이용하여 동작한다.
- HTTP 프로토콜 서비스를 지원하는 클래스를 상속받는다. UDP에 비해 속도가 느리다.
- HTML 변경 시 서블릿을 재컴파일해야 하는 단점이 있다.
- 톰캣 (Tomcat)
- 아파치 톰캣은 아파치 소프트웨어 재단에서 개발한 오픈소스 소프트웨어로서, 서블릿 컨테이너(또는 웹 컨테이너)만 있는 웹 애플리케이션 서버이다.
- 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하여 자바 서버 페이지(JSP)와 자바 서블릿이 실행할 수 있는 환경을 제공하고 있다.
- 톰캣은 관리툴을 통해 설정을 변경할수 있고, XML 파일을 편집하여 설정할 수도 있다. 그리고 톰캣은 HTTP 서버 자체를 내장하기도 한다.
- 자바서버 페이지나 자바 서블릿을 실행하기 위한 서블릿 컨테이너를 제공하며, 상용 웹 애플리케이션 서버에서도 서블릿 컨테이너로 사용하는 경우가 많다.
- 일반적으로 내장된 웹 서버로만 웹 시스템을 구성하지만, 많은 사용자가 사용하는 대규모 시스템 구축을 위해 웹 서버인 아파치 HTTP서버와 연동모듈을 사용하여 연동하여 사용한다.
(연동모듈로는 버전 1.3, 2.0은 mpd_jk를 이용, 버전 2.2 이후는 mod_proxy_ajp 모듈을 사용한다.)
'자바 JAVA > 자바 관련 상식' 카테고리의 다른 글
[자바 의존성 관련] 메이븐과 의존성 관리도구 (0) | 2020.05.13 |
---|---|
[자바 의존성 관련] 의존성과 라이브러리, 그리고 Jar (0) | 2020.05.13 |
메모리영역 ( 코드 영역 , 데이터 영역 , 힙 영역 , 스택 영역) (0) | 2020.05.13 |
J2SE, J2EE, JDK, JRE 차이 (0) | 2020.05.13 |
자바 API, API specification (0) | 2020.05.04 |
Comments