정적 자원과 동적 자원의 구분
웹 환경에서 클라이언트와 서버가 주고 받는 자원들은 크게 정적 자원과 동적 자원으로 구분됩니다.
먼저 위 화면을 예로 들자면 파란색 박스의 NAVER 로고 이미지의 경우 정말 가끔 업데이트 되지 않는 이상 거의 고정된 이미지 파일이 서버로부터 전송받게 됩니다.
이렇게 변하지 않는 자원들(ex 이미지파일, HTML, javascript 등) 을 정적(static) 자원이라 합니다.
이러한 정적 자원들은 클라이언트가 요청하면 요청한 자원 그대로 돌려주면 되기 때문에 웹서버(대표적으로 아파치 웹서버가 있다)에서 요청을 처리하게 됩니다.

그리고 동적 자원(dynamic)의 경우 빨간 박스안의 실시간 급상승 검색어를 예로 들 수 있습니다.
실시간 검색어는 말 그대로 실시간으로 계속 바뀌는 데이터이기 때문에 클라이언트가 요청하면 특정 데이터를 가공하여 응답하게 됩니다.
예전에는 페이지에서 전체적인 html을 동적으로 만들어 응답했기 때문에 바뀐 화면을 보고싶은 경우 새로고침이 되어야 했지만 지금은 AJAX나 웹소켓같은 비동기 방식의 통신을 하기 때문에 새로고침 되지 않고도 동적 자원을 클라이언트와 서버간에 주고 받을 수 있습니다.

정적 자원을 웹서버에서 처리했다면 이러한 동적 자원은 WAS(Web Application Server)에서 처리하게 됩니다.

웹서버와 WAS의 역할 중 가장 큰 차이점은 DB 서버에 접근하여 데이터를 처리할 수 있는가 없는가 입니다.  

동적 자원을 처리할 수 있는 대표적인 기술로는 PHP, ASP.net, JSP/Servlet 등이 있고 이러한 기술들을 통해 WAS를 조작할 수 있습니다.
깊이 들어가면 정확한 의미의 WAS는 아니지만 대표적으로 JAVA플랫폼의 경우 Tomcat이 있습니다.
(추가하자면 Tomcat은 자체적으로 웹서버 기능도 수행하지만 주 용도는 어플리케이션 서버로서 동적인 처리를 담당한다.)

때문에 성능을 위해서 웹서버와 WAS를 동시에 두어 정적자원의 처리는 웹서버가 담당하고 동적인 처리가 필요한 경우 WAS에서 처리하는 식의 역할을 분리하여 운영하기도 합니다.
블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

댓글을 달아 주세요! 질문 환영합니다!