WAS 와 Web Server의 차이 - (펌)

2017. 7. 20. 13:45IT-개발/Server

반응형

(펌) http://unabated.tistory.com/entry/WAS%EC%99%80-%EC%9B%B9%EC%84%9C%EB%B2%84Web-Server-%EC%9D%98-%EC%B0%A8%EC%9D%B4


■ 웹 서버(Web Server)
 - 클라이언트의 요청을 받아 HTML이나 오브젝트를 HTTP 프로토콜을 이용해 전송하는 것.
   사용자가 클라이언트로 요청을 보내오면 그 명령에 대한 처리를 실행하고 다시 사용자에게 답변을 보내준다.
 - 사용자가 요청한 것들 중에 웹 서버 자체적으로 처리할 수 없는 것들을 톰캣과 같은 컨테이너나 PHP 모듈과
   같이 처리할 수 있는 곳으로 넘겨 처리 결과를 받아와서 사용자에게 넘겨주는 역할도 수행한다.
 - 웹 서버만 구축된 서버는 웹 페이지, 이미지 등 정적인 페이지를 생성하지만,
   JSP 컨테이너가 탑재되어 있는 WAS는 JSP 페이지를 컴파일 해 동적인 페이지를 생성한다.
 - 웹 서버는 웹 문서를, WAS는 JSP 페이지 등을 양분하여 서버 부담을 줄이는 것이 가능하다.
 - Apache, IIS(Internet Information Server), WebtoB 등


■ 웹 어플리케이션 서버(Web Application Server / WAS)
 -  웹 서버 + 웹 컨테이너.
 -  웹상에서 사용하는 컴포넌트들을 올려놓고 사용하게 되는 서버
 - EJB와 같은 빈들이 올라가게 되며, 서버에 따라 웹에 필요한 많은 기능들을 포함하고 있다.
 - J2EE 스펙을 구현한 서버(JSP / Servlet Container와 EJB Container 로서의 기능)
 - 가장 많이 사용하는 WAS는 BEA사의 Web Logic, IBM사의 Web Sphere, T-max사의 Jeus, Tomcat, Redhot사의 JBoss 등이 있다.)
 - Tomcat은 JSP / Servlet Container의 기능을 구현했으나 EJB Container로서의 기능은 없다.
    따라서 Tomcat은 Was가 아니라는 사람들도 있다.



■ 컨테이너(Containner)
 - JSP와 서블릿을 이용하는 웹 응용 프로그램은 자바 언어를 이용해서 작성할 수 있는데,
   JSP와 서블릿을 실행시킬 수 있는 소프트웨어를 웹 컨테이너(Web Container) 혹은 서블릿 컨테이너(Servlet Container)라고 한다.
 - Servlet 컨테이너, JSP 컨테이너, EJB 컨테이너 등의 종류가 있으며, 대표적인 웹 컨테이너로는
   자카르타 톰캣(JSP), RESIN, Web Logic, WebtoB 등이 있다.
 - 웹 서버에서 JSP를 요청하면 톰캣에서는 JSP 파일을 서블릿으로 변환하여 컴파일을 수행하고,
   서블릿의 수행결과를 웹 서버에서 전달하게 된다. 


 
 웹 서버와 WAS의 차이점
 - 웹 서버와 WAS를 구별 짓는 것은 동적 서버 콘텐츠를 수행하는가? 만약 수행한다면 WAS로 보면 된다.
 - 웹 서버 : 정적인 HTML이나 이미지를 제공하는 서버.
   WAS : 동적인 처리를 담당하는 서버. 


■ 웹 서버와 WAS의 일반적인 구성

 - 사용자가 브라우저에서 요청을 하게 되면 다음과 같이 웹 서버와 WAS 서버를 거쳐 응답이 돌아오게 된다.
   사용자 요청(웹 브라우저) -> 웹 서버 -> WAS(동적 처리) -> 웹 서버 -> 사용자 응답 메세지(웹 브라우저)



출처: http://unabated.tistory.com/entry/WAS와-웹서버Web-Server-의-차이 [랄라라]




(펌) http://sungbine.github.io/tech/post/2015/02/15/tomcat%EA%B3%BC%20apache%EC%9D%98%20%EC%97%B0%EB%8F%99.html


아파치 톰캣을 이용해서 웹서버를 띄우고 개발을 진행해왔다. 그런데 실제 일을 하면서 서버를 실핼할때 단순히 tomcat만 쓰는게 아니라 apache라는 프로그램을 별도로 실행하는 것에 혼란이 왔다. 그리고 평소에 apache tomcat은 그렇다면 두개의 프로그램을 합쳐놓은 것인가를 고민하게 되어 정리해 보았다.

apache 란?

apach란 것은 소프트웨어 단체 이름이다. 그리고 우리가 흔히 부르는 아파치서버라는 것은 이제단에서 후원하는 오픈소프 프로젝트 커뮤니티에서 만든 http웹서버를 지칭하는 말이다. (아파치 프로젝트는 웹서버 외에도 여러가지 프로젝트를 진행하고 있다고 한다. 이건 추후에 조사해볼것이다.) http 웹서버는 http 요청을 처리할 수 있는 웹서버이고, 아파치 http서버는 http요청을 처리하는 웹서버인 것이다. 클라이언트가 GET, POST, DELETE 등등의 메소드를 이용해 요청을 하면 이 프로그램이 어떤 결과를 돌려주는 기능을 한다. 아파치는 웹서버 이다!

tomcat 이란?

tomcat은 흔히 WAS(Web Application Server)라고 말한다. WAS는 웹서버와 웹 컨테이너의 결합으로 다양한 기능을 컨테이너에 구현하여 다양한 역할을 수행할 수 있는 서버를 말한다. 클라이언트의 요청이 있을 때 내부의 프로그램을 통해 결과를 만들어내고 이것을 다시 클라이언트에 전달해주는 역할을 하는 것이 바로 웹 컨테이너 이다. 앞에서 본 아파치 웹 서버와 차이는 이 컨테이너 기능이 가능하냐의 차이가 가장 크다고 생각한다.was구조이미지출처 : http://gap85.tistory.com/45

WAS역시 웹 서버로써 역할을 수행할 수 있기 때문에 둘을 잘 구별하지 못하면 필자 같은 혼란이 생길 수 있다.

둘의 차이는?

그렇다면 WAS만 쓰면 되지 어째서 웹서버를 따로 쓰느냐는 의문이 생길 수 있다. 그 이유는 목적이 다르기 때문이다. 웹 서버는 정적인 데이터를 처리하는 서버이다. 이미지나 단순 html파일과 같은 리소스를 제공하는 서버는 웹 서버를 통하면 WAS를 이용하는 것보다 빠르고 안정적이다(왜? 다른 글 소스로 써볼까?) WAS는 동적인 데이터를 처리하는 서버이다. DB와 연결되어 데이터를 주고 받거나 프로그램으로 데이터 조작이 필요한 경우에는 WAS를 활용 해야 한다.

기타(리눅스에서 설치 및 연동하기)

두 서버의 목적의 차이 때문에 두 개의 서버를 연동해서 사용하면 더욱 효과적인 서비스를 제공할 수 있다. 사용자 요청은 http 웹 서버를 통해 받고 내부 프로그램은 was를 통해 처리하는 식으로 한다면 정적인 데이터와 동적인 데이터를 효과적으로 처리가 가능할 것이다.

연동에 관련된 부분은 정리가 이곳을 보고 참조해보길 바란다. tomcat 과 apache 연동하기



(펌 : http://blog.pages.kr/1966)


■ 웹 서버(Web Server)
 - 클라이언트의 요청을 받아 HTML이나 오브젝트를 HTTP 프로토콜을 이용해 전송하는 것.
   사용자가 클라이언트로 요청을 보내오면 그 명령에 대한 처리를 실행하고 다시 사용자에게 답변을 보내준다.
 - 사용자가 요청한 것들 중에 웹 서버 자체적으로 처리할 수 없는 것들을 톰캣과 같은 컨테이너나 PHP 모듈과
   같이 처리할 수 있는 곳으로 넘겨 처리 결과를 받아와서 사용자에게 넘겨주는 역할도 수행한다.
 - 웹 서버만 구축된 서버는 웹 페이지, 이미지 등 정적인 페이지를 생성하지만,
   JSP 컨테이너가 탑재되어 있는 WAS는 JSP 페이지를 컴파일 해 동적인 페이지를 생성한다.
 - 웹 서버는 웹 문서를, WAS는 JSP 페이지 등을 양분하여 서버 부담을 줄이는 것이 가능하다.
 - Apache, IIS(Internet Information Server), WebtoB 등




■ 웹 어플리케이션 서버(Web Application Server / WAS)
 -  웹 서버 + 웹 컨테이너.
 -  웹상에서 사용하는 컴포넌트들을 올려놓고 사용하게 되는 서버
 - EJB와 같은 빈들이 올라가게 되며, 서버에 따라 웹에 필요한 많은 기능들을 포함하고 있다.
 - J2EE 스펙을 구현한 서버(JSP / Servlet Container와 EJB Container 로서의 기능)
 - 가장 많이 사용하는 WAS는 BEA사의 Web Logic, IBM사의 Web Sphere, T-max사의 Jeus, Tomcat, Redhot사의 JBoss 등이 있다.)
 - Tomcat은 JSP / Servlet Container의 기능을 구현했으나 EJB Container로서의 기능은 없다.
    따라서 Tomcat은 Was가 아니라는 사람들도 있다.



■ 컨테이너(Containner)
 - JSP와 서블릿을 이용하는 웹 응용 프로그램은 자바 언어를 이용해서 작성할 수 있는데,
   JSP와 서블릿을 실행시킬 수 있는 소프트웨어를 웹 컨테이너(Web Container) 혹은 서블릿 컨테이너(Servlet Container)라고 한다.
 - Servlet 컨테이너, JSP 컨테이너, EJB 컨테이너 등의 종류가 있으며, 대표적인 웹 컨테이너로는
   자카르타 톰캣(JSP), RESIN, Web Logic, WebtoB 등이 있다.
 - 웹 서버에서 JSP를 요청하면 톰캣에서는 JSP 파일을 서블릿으로 변환하여 컴파일을 수행하고,
   서블릿의 수행결과를 웹 서버에서 전달하게 된다. 



 웹 서버와 WAS의 차이점
 - 웹 서버와 WAS를 구별 짓는 것은 동적 서버 콘텐츠를 수행하는가? 만약 수행한다면 WAS로 보면 된다.
 - 웹 서버 : 정적인 HTML이나 이미지를 제공하는 서버.
   WAS : 동적인 처리를 담당하는 서버. 



■ 웹 서버와 WAS의 일반적인 구성
 - 사용자가 브라우저에서 요청을 하게 되면 다음과 같이 웹 서버와 WAS 서버를 거쳐 응답이 돌아오게 된다.
   사용자 요청(웹 브라우저) -> 웹 서버 -> WAS(동적 처리) -> 웹 서버 -> 사용자 응답 메세지(웹 브라우저)

출처: http://blog.pages.kr/1966 [hi.pe.kr 날으는물고기·´″°³о♡]





'IT-개발 > Server' 카테고리의 다른 글

Round Robin DNS (펌)  (0) 2016.05.27