반응형
Web Server란?
개념
- 하드웨어적 의미로는 Web Server가 설치되어 있는 컴퓨터
- 소프트웨어적 의미로는 클라이언트의 요청을 받아 정적 컨텐츠(image, html, css, javascript 등)를 제공하는 서버
기능
- HTTP 프로토콜을 기반으로 하여 클라이언트 요청에 따라 서비스를 담당
- 클라이언트의 요청이 정적 컨텐츠라면 그에 맞는 정적 컨텐츠를 클라이언트에게 응답
- 클라이언트의 요청이 정적 컨텐츠가 아니라면 WAS에게 요청을 전달 및 WAS의 응답을 클라이언트에게 전달
- 컨텐츠 압축
- HTTPS 지원
- Web Server 메모리 캐시
종류 : Apache Web Server, Nginx, IIS(Microsoft), Google Web Server
WAS란?
개념
- Web Appliaciton Server로써 Web Server + Web Container의 개념
- 클라이언트의 요청을 받아 DB조회나 비지니스 로직 처리를 요구하는 동적 컨텐츠(JSP, Servlet 등)를 제공하는 서버
- Web Container또는 Servlet Container라고도 불림
(Container : JSP, Servlet을 실행시킬 수 있는 소프트웨어)
기능
- Application의 실행 환경 제공 및 DB 접속 기능 제공
- 여러 트랜잭션 관리 기능
- 비지니스 로직 처리 기능
- Web Service 플랫폼으로써의 역할
종류 : Tomcat, JBoss, Jeus, Jetty, WebLogic
Web Server와 WAS
WAS는 정적 컨텐츠를 처리하는 Web Server와 동적 컨텐츠를 처리하는 Web Container로 이루어져 있다. 따라서 WAS만으로 컨텐츠들을 처리 할 수 있지만 일반적으로는 WAS 앞에 Web Server를 따로 두고 사용한다. 자원 이용의 효율성 및 장애극복, 배포 및 유지보수 편의성면에서 다음과 같은 장점이 있다.
- 기능을 분리하여 서버 부하방지 - Web Server(정적 컨텐츠), WAS(동적 컨텐츠) 를 분리함으로써 WAS의 부담을 줄임
- 보안 강화 - Web Server를 이용하여 WAS의 설정 파일 노출 방지 가능
- 여러 WAS를 운영 가능 - 로드 밸런싱, fail over, fail back, 무중단 운영 등을 여러 WAS를 통해 운영 가능
Web Server와 WAS의 동작과정
- 클라이언트로 부터 들어온 HTTP 요청을 Web Server가 받음
- Web Server는 클라이언트의 요청을 WAS에게 전달
- WAS는 관련된 Servlet을 메모리에 올리고 web.xml을 참조하여 Servlet에 대한 Thread 생성
- Thread는 Servlet에서 service() 호출 후 로직처리
- 로직이 처리된 동적 페이지를 WAS에 전달, WAS는 Web Server에 전달
- Thread 종료
출처
victorydntmd.tistory.com/121
taes-k.github.io/2019/05/24/webserver/
jeong-pro.tistory.com/84
gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html
반응형
'Java&Web' 카테고리의 다른 글
[JUnit] JUnit이란 (0) | 2020.12.18 |
---|---|
[Apache] Apache와 Tomcat 연동하기 (0) | 2020.12.17 |
[JPA] Spring Data JPA (4) - 사용자 정의 Repository (0) | 2020.08.28 |
[JPA] Spring Data JPA (3) - 페이징과 정렬 (2) | 2020.08.28 |
[JPA] Spring Data JPA (2) - 메소드 네임 쿼리, @Query (0) | 2020.08.28 |