웹 프로그래밍 02
Updated:
Static Pages 와 Dynamic Pages
Static Pages
*웹 서버는 파일 경로 이름을 받아 경로와 일치하는 파일을 보낸다.
*예로 이미지, html, css, javascript가 있음
Dynamic Pages
*요청한 내용에 맞게 동적인 내용을 반환한다.
*즉, 웹 서버에 의해서 실행되는 프로그램을 통해서 만들어진 결과물.
*그 프로그램이 servlet(was 위에서 돌아가는 java 프로그램)
*개발자가 servlet에 doGet()을 구현
WEB서버 / WAS
Web Server
1.개념
*하드웨어 : web서버가 설치되어 있는 컴퓨터
*소프트웨어 : 웹 브라우저 클라이언트로부터 Http 요청을 받아 정적인 컨텐츠를 제공하는 프로그램
2.기능
*was를 거치지 않고 정적인 컨텐츠 제공
*동적인 컨테츠 제공을 위해 was에 요청 전달
*was에게 받은 응답을 client에 전달
3.예시
*아파치 서버, Nginx 등
WAS (Web Application Server)
1.개념
*DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠 제공
*웹 컨테이너 or 서블릿 컨테이너라고 불림 (컨테이너란 jsp, servlet을 실행하는 SW)
*즉, was는 jsp, servlet 구동환경을 제공
*Web 서버 와 Web Container를 합친 것
*Web 서버 기능을 구조적으로 분리하여 처리하고자하는 목적으로 만들어짐
2.기능
*분산 트랜잭션, 보안, 메시징, 쓰레드 처리 기능을 처리하는 분산환경에서 사용
*업무 처리하는 비즈니스 로직 수행
*DB 접속 기능 제공
3.예시
*Tomcat, JBoss, Jeus 등
차이점
*WEB은 정적만, WAS는 정적, 동적 처리 모두 가능. 그러나 WAS가 모두 하면 부하가 걸림
*보통 WEB서버와 WAS를 따로 두는 이유는 WAS의 부담을 줄여 성능을 높이기 위해라고 한다.
*그러나 톰캣 5.5부터는 Tomcat은 아파치(WEB 서버) 기능을 포함하고 있고 성능 차이가 없다.
*결론적으로는 현재 WAS가 가지고 있는 Web 서버도 정적인 컨텐츠를 처리하는데 있어서 성능 차이는 없다.
<그럼에도 분리하는="" 이유=""> 1.php와 java를 함께 사용한다거나 httpd 서버의 로드밸런싱을 위해서 사용. *로드밸런싱이란? 하나의 서버에 트래픽이 많을 경우 여러개로 서버를 나누어 서비스하는 것. 2.SSL에 대한 암복호화 처리를 WEB서버에서 사용. WAS의 환경설정 파일을 외부에 노출시키지 않으려고 사용 그럼에도>