study Log/Servlet, JSP
[Servlet] Web 통신구조
manyMore
2023. 2. 16. 17:24
Client(서비스 사용자) -> Web browser 이용
DB Server를 통해 회원 관리 등 데이터 관리 <-> Servlet/JSP <-> Web Server(HTML)로 전달
Web Server란?
사용자에게 HTML 페이지나 jpg,png와 같은 이미지를 HTTP프로토콜을 통해 웹 브라우저에 제공하는 서버로,
내부의 내용이 이미 만들어져 있는 정적인 요소들을 화면에 보여주는 역할을 한다.
Web Server의 종류
012
- Apache : Apache Software Foundation 에서 만든 서버로 HTTP 통신에 대한 여러 라이브러리를 제공한다
- Micro llS : Window OS에서 제공하는 웹 서버로, 높은 수준의 보안성과 성능을 제공한다.
- MGiNX : 무료 오픈 소스 서버로, 사용자 요청을 스레드가 아닌 확장성이 있는 이벤트 기반 설계를 통해 필요 리소스만 할당하여 사용한다.
WAS(Web Application Server)란?
사용자가 요청한 서비스의 결과를 스크립트 언어 등으로 가공하여 생성한 동적인 페이지를 사용자에게 보여주는 역할을 한다.
웹서버가 웹 애플리케이션 서버에 요청하면 웹 애플리케이션 서버가 해당되는 프로그램을 실행하는 방식, 한 프로그램에 여러 요청이 있는 경우 한 개의 프로그램을 실행하여 그 프로그램을 다수 요청을 처리
WAS의 종류
- tomcat : Apache Software Foundation에서 Servlet과 JSP를 통한 동적인 웹 문서를 처리하기 위해 만든 웹 애플리케이션 서버
- WildFly : Jboss라고도 불리며, 톰캣이 제공하는 servlet container뿐만 아니라 EJB container를 별도로 제공하여 폭넓은 서비스를 구현
- jeus : 국산 WAS, 대용량의 데이터 트랜잭션을 고성능으로 처리하며 개발 및 운영에 관한 기술 지원이 뛰어나다.
CGI(Common Gateway Interface) 란?
웹서버가 직접적으로 웹 프로그램을 실행하는 것을 말한다. 동일한 프로그램에 대한 요청이 있을 때 마다 각각 프로그램을 실행, 요청과 프로그램이 1:1 매칭되어 실행 Perl이나 C/C++ 언어를 사용하여 웹서버가 실행할 수 있는 프로그램을 작성
서블릿 컨테이너와 JSP 컨테이너
- 서블릿 컨테이너(Servlet-Container) : 서블릿의 생명주기를 관리(생성,초기화,소멸), HttpServletRequest, HttpResponse객체를 생성, 요청에 따라 멀티스레딩 구성, 전송방식에 따라 동적으로 페이지 구성하는 작업진행, 정적로딩처리
- JSP 컨테이너(JSP-container) : JSP파일을 다시 java코드로 변경해주고 class파일로 전환하여 메모리 공간에 로드한 뒤 실행 가능하게 만드는 작업을 진행(Servlet화), 처리결과를 HTML파일로 만들어주는 작업진행, 동적로딩처리
구분 | 장점 | 단점 |
Web Server | - 빠른 처리 속도 => 요청에 대한 결과 페이지만 전송 - 구현이 쉬움 => HTML 같은 단순한 문서만으로 구성 |
- 한정적인 서비스 => 만들어진 정보만 보여주기 때문에 서비스가 한정적이다. - 글의 추가, 수정, 삭제가 어려움 => 문서의 내용이 변경될 경우 직접 수정 |
WAS | - 서비스의 다양성 => 여러 데이터를 활용할 수 있다. - 글의 추가, 수정, 삭제가 쉽다. => 문서의 내용이 변경될 경우 직접 수정 X |
- 느린 처리 속도 => 데이터를 처리하여 결과를 전송함 - 구현이 어려움 => 서비스에 해당하는 소스를 직접 작성 |