웹 서버와 WAS의 차이를 이해하기 위해서는 먼저 정적 페이지와 동적 페이지의 개념을 알아야 한다.
정적 페이지(Static Page) 는 서버에 미리 저장되어 있는 파일을 그대로 전달하는 웹 페이지를 말한다. HTML, CSS, JavaScript, 이미지 파일처럼 이미 완성되어 있는 파일들이 여기에 해당한다. 누가 요청하든 항상 같은 내용을 보여준다는 특징이 있다.
반면 동적 페이지(Dynamic Page) 는 요청이 들어올 때마다 서버에서 프로그램을 실행해서 그 결과를 만들어내는 웹 페이지다. 사용자의 요청 내용, 시간, 데이터베이스의 정보 등에 따라 매번 다른 결과물을 생성한다.
책으로 비유하면 정적 페이지는 이미 인쇄되어 있는 책이고, 동적 페이지는 독자가 선택한 내용에 따라 그때그때 내용을 작성해서 보여주는 맞춤형 책이라고 할 수 있다. 예를 들어 인스타그램의 피드는 각 사용자마다 다른 내용을 보여주는 동적 페이지다.
웹 서버는 클라이언트(웹 브라우저)로부터 HTTP 요청을 받아서 정적인 컨텐츠를 제공하는 서버 프로그램이다. HTTP 프로토콜을 기반으로 동작하며, 서버에서 변경되지 않고 그대로 사용자에게 전달되는 파일들을 제공한다.
대표적인 웹 서버로는 Apache HTTP Server와 Nginx가 있다. 이들은 무료 오픈소스로 제공되며, 전 세계 웹 서버의 대부분을 차지하고 있다.
웹 서버는 크게 두 가지 기능을 수행한다.
첫 번째는 정적 컨텐츠를 직접 제공하는 것이다. HTML 문서, CSS 파일, JavaScript 파일, 이미지, 비디오 같이 이미 만들어진 파일들을 클라이언트에게 전달한다. WAS를 거치지 않고 바로 제공하기 때문에 속도가 빠르다.
두 번째는 동적 컨텐츠 요청을 WAS에 전달하는 것이다. 클라이언트의 요청이 동적 처리가 필요한 경우 해당 요청을 WAS로 보내고, WAS가 처리한 결과를 다시 클라이언트에게 전달하는 중계 역할을 한다.