클라이언트 & 웹 서버 & WAS

웹서버와 클라이언트

클라이언트와 서버는 각각 clientserver라는 의미의 영어가 어원. 즉 client가 요청(request)하면 server가 응답(response) 해주는 구조. 웹서버는 네트워크상에 공개하는 하이퍼텍스트(HTML 형식의 파일)를 쌓고, 웹 클라이언트가 요청하는 HTML파일을 건네준다.

왜 클라이언트와 서버로 나뉠까?

  1. 웹에서 다양한 컨텐츠를 불특정 다수에게 공개하려면 콘텐츠를 적절히 정리하고 관리하는 것이 매우 중요. 웹에 존재하는 대부분의 컨텐츠는 업데이트가 이루어진다. 그런데 이 컨텐츠가 여러곳에 분산돼 있다면 어디에 저장되어있는지 파악하고 동시에 갱신하는게 어렵다. 즉 웹서버와 같이 컴퓨터 하나에 정보를 모아 두는 편이 관리가 수월하다.
  2. 웹은 불특정 다수의 사람들이 자유롭게 열람할 수 있어야 하는데 사용자가 웹 서버를 직접 조작하는 것은 비현실적인 일이다. 따라서 사용자의 PC를 웹 클라이언트로 컨텐츠를 관리하는 컴퓨터를 웹 서버로 나눴다.

웹 서버와 WAS(Web Application Server)

웹 서버와 WAS의 차이는 어떤 타입의 컨텐츠를 제공하느냐의 차이이다.

  • 웹서버는 정적인 컨텐츠(html, css, js)를 제공하는 서버이다. 대표적으로 Apache와 Nginx가 있다.
  • WAS는 DB 조회나, 어떤 로직을 처리해야 하는 동적인 컨텐츠를 제공하는 서버이다. 대표적으로 Tomcat이 있다.
  • 웹 서버와 WAS는 독립적으로 존재할 수 있고, 대부분의 WAS는 정적인 컨텐츠를 제공해주고 있기 때문에, 웹서버 없이 WAS만 존재할 수 있다. 그래서 WAS는 웹 서버를 포함하는 개념이라고 생각할 수 있다.

웹 서버를 사용하는 이유?

image

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

WAS 앞에 웹 서버를 둬서 웹 서버에서는 정적인 컨텐츠만 제공하고 WAS는 Application의 로직만 수행하도록 기능을 분배하여 서버의 부담을 줄일 수 있다.

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

클라이언트를 연결하는 포트가 WAS와 직접 연결이 되어 있다면 WAS의 환경설정 파일이 외부에 노출될 가능성이 있다. 웹 서버를 WAS의 앞단에 배치시켜 클라이언트는 웹 서버 하고만 통신하게 하여 WAS의 보안을 강화시킬 수 있다.

Reference

  1. https://victorydntmd.tistory.com/121
  2. https://jeong-pro.tistory.com/84

Written by@[HongDongUk]
공부한 것을 소소하게 적는 블로그.

GitHubFacebook