1 minute read

웹 서버와 앱 서버란 무엇이고, 둘의 차이점은 무엇일까?

이 부분을 알아보기 전에, 기본적인 부분들을 짚고 넘어가자.

클라이언트란? → 요청을 하는 쪽 (웹 브라우저 등)

서버란? → 요청을 받아 기능 또는 데이터를 제공하는 쪽 (웹 서버 등)

집에서 www.naver.com에 접속한다고 생각해보자.

내 PC의 웹 브라우저에 URL을 요청하고, 그 URL을 받는 웹 서버는 다른 PC에서 실행되고 있기 때문에,

웹 브라우저를 웹 서버에 연결하려면 웹 서버를 실행중인 PC의 IP주소를 알아야 한다.

하지만 이전에 배웠듯이, IP주소는 IPv4의 경우 192.168.62.11등과 같이 숫자로 되어있고, 엄청나게 많기 때문에 외우기가 너무나 힘들다.

떄문에 naver.com과 같은 도메인 이름 (Domain Name)을 사용한다.

이때, IP주소는 여전히 필요하므로, 도메인 이름과 IP주소를 저장하고 있는 데이터 베이스인

DNS (Domain Name Service)를 사용한다.

Web Server

클라이언트로부터 HTTP요청을 받아들이고, HTML문서와 같은 정적인 웹 페이지, 파일, 이미지, 영상들을 반환한다.

클라이언트가 서버에 HTTP요청을 보내고, 그에 맞게 웹 서버가 처리할 수 있는(정적) 데이터를 응답해준다.

자체적으로 처리할 수 없는 동적 데이터(JSP, PHP, ASPnet, DB연동 등)를 요청받으면, 웹 컨테이너로 데이터를 넘겨주고, 웹 컨테이너에서 처리한 결과를 다시 받아 클라이언트에게 전달해준다.

웹 서버는 대표적으로 Apache, IIS (Internet Infomation Server), WebtoB 등이 있다.

컨테이너란? → 웹 서버가 보낸 동적 데이터(JSP, PHP, ASPnet, DB연동 등)를 실행하고, 그 결과를 다시 웹 서버로 보내준다.

자카르타, 톰캣, RESIN, 웹로직, 웹투비 등이 있다.

여기서 잠깐!!

정적 / 동적 데이터의 차이점

  • 정적 데이터

    로고, 메뉴 등 어떠한 실행이 있기 전까지 변하지 않는 것.

  • 동적 데이터

    실시간 날씨, 실시간 배너 광고, 실시간 배너 뉴스 등 변하는 것.

WAS (Web Application Server)

웹 서버와 웹 컨테이너가 합쳐진 형태이다.

동적인 서버 데이터를 수행하며, 주로 데이터 베이스 서버와 같이 수행된다.

대표적으로 톰캣, Web Logic, Web Sphere, Jeus, Jboss등이 있다.

웹 서버와 앱 서버를 함께 쓰는 이유?

많이 쓰이는 Apache와 톰캣으로 설명하자면,

WAS는 위에서 설명한대로 웹 서버와 웹 컨테이너가 합쳐진 형태이므로 만능처럼 보이지만,

톰캣 특성상 java언어만 해석이 가능하기 때문에 JSP는 처리가 가능하지만 PHP는 처리가 불가능하다.

때문에 하나의 서버에서 JSP와 PHP를 모두 사용하고 싶다면 아파치와 톰캣을 모두 사용해야 한다.

하지만 그런 경우가 아니라면, 최신 버전의 톰캣은 정적, 동적 데이터를 전부 처리할 수 있기 때문에 단독으로 사용가능하다.

웹 서버와 앱 서버의 궁극적인 차이점

→ 동적인 데이터를 처리할 수 있는가? 처리할 수 있다면 WAS.

웹 서버: 정적인 HTML이나 이미지를 제공하는 서버.

WAS: 동적인 처리를 담당하는 서버.

Updated: