WEB
기본적으로 정적인 웹 사이트를 제공함 -> 그럼 동적인 웹 사이트는 제공할 수 없다고 생각할 수 있다.
하지만, 제공할 수 있다. 예를 들어 아파치와 PHP, MySQL을 연동해 PHP 웹 사이트를 제공할 수 있고,
이러한 방식을 APM(Apache + PHP + MySQL)방식 이라고 한다.
아파치 (Apache)
웹 서버로 클라이언트 요청이 왔을때만 응답하는 정적 웹페이지이다.
- 웹서버 = 80번 포트로 클라이언트 요청(POST, GET 등)이 왔을 때 응답
- 정적인 데이터 = HTML, CSS, 이미지 등
- WEB
WAS
Web Application Server의 약자로 자바, JSP 등으로 만든 웹 또는 API 애플리케이션을 실행하여 동적인 웹 사이트를 제공할 때 사용함
웹과 서버 사이에서 동적으로 작동하는 프로그램을 WAS라고 하고, 이 WAS의 역할을 하는 프로그램 중 하나가 톰캣이다.
톰캣 (Tomcat)
동적인 웹을 만들기 위한 웹 컨테이너, 서블릿 컨테이너라고 불리며, JSP, ASP, PHP 등은 톰켓에게 전달한다.
- DB연결, 데이터 조작, 다른 응용프로그램과의 상호작용이 가능
- WAS
같이 쓰는 이유
WAS로만 운영할 수 있는 동적페이지를 WEB과 같이 쓰는 이유는
1. Reverse Proxy
- 프록시는 자신의 아이피(ip) 주소를 숨기는 행위
- 서버와 클라이언트 사이에 프록시를 두고 프록시를 통해 데이터를 주고받음
- Forward Proxy는 서버에 방문하는 클라이언트의 주소를 감춤
- Reverse Proxy는 클라이언트에게 서버의 주소를 감춤
- Reverse Proxy를 사용하는 것은 서버가 보안의 이유로 서버 내부 구조를 감추기 위함
- 이러한 Reverse Proxy를 웹 서버가 담당
2. 로드 밸런싱
- 클라이언트의 요청에 따른 처리를 동작 중인 여러 WAS에게 적절히 분배하는 것
- 톰캣과 같은 WAS 서비스를 하나만 운영하면 WAS 프로그램이 다운되거나,
업데이트되는 등 WAS 프로그램의 사용이 불가할 때 문제가 발생 - 이러한 문제를 방지하기 위해 여러 개의 WAS 프로그램으로 서버를 운영
- 이러한 로드 밸런싱, 즉 WAS의 자원 분배는 웹 서버가 담당
3. 캐싱
- Reverse Proxy의 캐시를 의미
- 서버로 찾아오는 클라이언트들이 자주, 반복적으로 요청하는 리소스들을 프록시 서버에 저장하고 제공하는 것
- 이러한 캐싱을 웹 서버가 담당
4. 주기적인 체크
- 웹 서버에 존재하는 수많은 모듈을 사용해 WAS 서비스가 정상적으로 동작하고 있는지 체크함
Flow
'취약 웹 개발 > Tomcat + JSP' 카테고리의 다른 글
Java Servlet (0) | 2023.03.26 |
---|---|
Tomcat DB 연동 (0) | 2023.03.26 |
Tomcat의 구조 (0) | 2023.03.26 |