Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags more
Archives
Today
Total
관리 메뉴

ultra_dev

웹서버와 WAS의 차이 본문

Computer Science

웹서버와 WAS의 차이

ultra_dev 2023. 4. 3. 13:05

Web Server란?

  • 클라이언트의 request(요청)를 받아 정적인 컨텐츠(html, css, js)를 response(응답)하는 서버

WAS 란?

  • Web Application Server
  • 클라이언트의 request(요청)를 받아 DB 조회나, 어떤 로직을 처리해야하는 동적인 컨텐츠를 response(응답)하는 서버

 

웹서버는 정적, WAS는 동적

결론적으로 어떤 타입의 컨텐츠(동적, 정적)를 제공하냐는 것

 

웹 서버와 WAS는 각각 독립적으로 존재 가능

 

대부분의 WAS는 정적인 컨텐츠를 제공해주고 있기 때문에, 웹 서버 없이 WAS 만 존재할 수 있음

 

즉, WAS는 웹 서버를 포함하는 개념이라고 할 수 있음

 

 

그렇다면 WAS 외에 굳이 웹서버를 사용하는 이유는?

 

WAS가 해야할 일의 부담을 줄이기 위해서

  • WAS 앞에 웹 서버를 둬서 웹 서버에 정적인 문서만 처리하도록하고, WAS는 애플리케이션의 로직만 수행하도록 기능을 분배해서 서버의 부담을 줄인다

WAS의 환경 설정 파일을 외부에 노출시키지 않도록 하기 위해서

  • 클라이언트와 연결하는 포트가 직접 WAS에 연결이 되어 있다면 중요한 설정 파일들이 노출될 수 있기 때문에 WAS 설정 파일을 외부에 노출시키지 않도록 하기 위함
  • 웹 서버와 WAS에 접근하는 포트가 다르기 때문에 WAS에 들어오는 포트에는 방화벽을 쳐서 보안을 강화할 수도 있다.

 

 

was는 웹서버+웹컨테이너 느낌..?

 

+

웹 컨테이너의 정의

 

  • 웹 컨테이너는 Java 서블렛과 상호작용하는 WAS의 구성요소이다.
  • 서블릿의 생명주기를 관리한다.
  • ServerSocket 생성 등 통신을 지원한다.
  • 선언적 보안 관리
    • 보안에 관련된 내용을 서블릿, 자바 클래스 코드 안에 하드 코딩할 필요가 없다.
    • 즉, 필요한 데이터나 값, 코드 등을 직접 타이핑해서 집어 넣는 일이 없다.
    • 보안 관리는 배포 서술자(web.xml)에다가 기록하면 된다.

쉽게 말해 WAS 내부에서 개발자 대신 서블릿을 관리하는 녀석

 

WAS 별로 다양한 종류의 컨테이너를 내장하고 있으며, 이들 중 서블릿에 관련된 기능을 모아 놓은 것을 서블릿 컨테이너라 부른다.

 

+++

 

서블릿

 

Dynamic Web Page를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술

웹을 만들때는 다양한 요청(Request)과 응답(Response)이 있기 마련이고 이 요청과 응답에는 규칙이 존재

블릿은 이러한 웹 요청과 응답의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해주는 기술

Comments