반응형

웹 서버와 was(web Application Server) 차이점에 대해서 알아보자!

학생이나 초급개발자들은 웹서버와 was에 대해 궁금해 할 것 같다. 제 생각을 정리해서 이둘의 차이점을 포스팅해볼께요

* 잘못된 부분이 있으면 댓글로 남겨주세요!:)



웹서버(web server)

웹브라우저와 같은 클라이언트부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹페이지를 반환하는 컴퓨터 프로그램 

1. 종류: Apache web server, IIS(MS), Nginx web server, Zeus webserver, 등등

2. 정리: 웹서버는 서버에 문지기 역할이라고 생각됨!. http요청기다렷다가 받으면 was로부터 해석된 웹페이지를 응답해쥼

일반적으로, 웹서버 라고 한다면 H/W측면에서는 서버 장비!(컴퓨터)를 뜻하고, S/W 측면에서는 Apache나 iis등 서버장비에 설치되어 요청을 받고 반환하는 프로그램을 뜻함!


WAS(Web Application Server)

웹 어플리케이션 서버는 동적 서버 컨텐츠를 수행하는 것으로 일반적인 웹 서버와 구별이 되며, 주로 데이터베이스 서버와 같이 수행된다.

1. 종류: Tomcat, Web Logic, Web Sphere, jeus, JBOSS, 등등

2. 정리: Application(Jar,등)을 해석(컴파일) 하고 동적인 정보를 처리한닷.


여기서 잠깐! IIS의 경우 웹서버,WAS역할을 둘 다 할수 있다, 또한, 당연하지만 asp.net에 최적화! 되어있다.

흔히, apach tomcat 이라고 하면 apach는 웹서버이고, tomcat은 apach 회사에서 만든 was다!

웹서버를 문지기 라고 하였는데 클라이언트로부터 웹서버로 요청이 들어오면 해당 웹서버는 was에서 해석된 정보를 다시 응답해 주기 때문이다.

was의 내부 구조에는 container, servlet, thread, dbconnection, 등이 있다(그림으로 이해하시긜)



위키백과 + 나만의견해(?) 는 이렇게 설명되어있지만, 글만 봐서는 이해가 되지않을 것이다.






그림을 설명하기전 하나 짚고가야할께있다.


정적인 페이지 : 사용자요청에 상관없이 내용이 변하지 않는 페이지

동적인 페이지 : 사용자가 원하는 자료를 볼 수 있는 웹페이지



클라이언트가 서버로 HTTP 요청을 URL을 통해 하게되면

웹서버는 요청을 받고 WAS에서 해석된 정보를 정적 컨텐츠로 만든다음 다시 클라이언트로 응답해준다.


간단히! was는 db, java, c 기타등등 언어들을 컴파일하여 가공된다.

그럼 다음 was는 웹서버한테 가공된 문서여깄다! 하면서 응답을 보낸다.

그럼 웹서버는 응답받은 정적 컨텐츠!(html)를 반환하여 클라이언트에게 보여준다.


여기서 주의할점은 클라이언트 정적인페이지 요청을 하면 웹서버는 was에게 요청하지않고 바로 클라이언트에게 넘겨준다.




단순히 생각하면 눈에 바로 보여지는 webServer, 동적인(가공되어지는 컨텐츠)페이지는 was가 담당한다고 생각하면 될 것 이다.



그렇다면 왜 이둘을 분리했을까?


기능을 분리하여 서버 부하 방지예방해야한다. 

사용자가 원하는 자료를 요청했을때 그거에대한 응답을 주기에도 많은 자원이 들어간다. 그럼 단순한 정적인 페이지까지 was가 담당해야할까?

이 둘을 나눠 처리하면 더욱 효율적으로 서버를 활용할 수 있을 것 같다.


간단히, 웹서버에서 여러개의 was를 관리하여 서버의 자원(H/W)을 효율적으로 사용하자 라는 취지!

예를 들어 웹서버에 WAS 여러개(JAVA서버,C#서버)를 연결할수 있다(=로드밸런싱의 역할!) 

그리고 처리속도! 한사람이 모든걸 하기보다는 리더(?문지기?:웹서버)가 있고 뒤에 일꾼들(WAS)가 있으면 더 빠르기 때문이다.



반응형

+ Recent posts