보통 저희는 브라우저에서 사이트의 주소를 입력하여 웹사이트를 방문합니다.
이때 이 사이트 주소는 방문하고자 하는 웹사이트가 가진 인터넷상의 주소(ip, port)를 사용자에게 익숙한 언어로 등록시킨 이름(domain name)입니다.
따라서, 저희가 만든 웹사이트를 다른 사람에게 보여주러면 컴퓨터의 특정 port에 웹사이트를 할당하고 외부에 공개해야합니다.그래야 외부에선 도메인 이름(ip,port)을 통해 우리의 웹사이트를 방문할 수 있습니다.
저희가 만든 웹사이트를 어떻게 port에 등록할 수 있을까요? 그럴 때 필요한게 web server입니다.(여기서 web server는 배포 컴퓨터를 의미하는게 아니라 어플리케이션입니다)
web server는 저희가 만든 프로젝트를 특정 port에 연결하고 요청과 응답에 대해 중간자로서 제어하는 역할을 합니다.대표적인 웹 서버로는 Apache HTTP Server, Nginx 등이 있습니다.
초기 web server는 정적인 콘텐츠(HTML, CSS, JavaScript)만 응답이 가능했습니다.지금처럼 단일 web server가 백엔드에 데이터를 요청하고 view단과 결합하여 응답하지 못했습니다.오로지 view 단에 있는 html 파일만 보여줄 수 있었는데요.
그때는 아마 백엔드에 있는 데이터를 요청하는 다른 방식이 있었겠죠?(CGI 스크립트나 다른 프로그램을 사용했다고 합니다) was는 이를 하나의 server로 통합한 것입니다.
초기 방식이
요청 -> 웹 서버 -> 응답
이었다면 was는
요청 -> 웹 서버 -> 웹 컨테이너(백엔드 서버와 통신 및 페이지와 결합) -> 웹서버 -> 응답
인 겁니다.
여기서 웹 컨테이너는 서블릿 컨테이너 또는 애플리케이션 서버로, 동적인 웹 페이지를 생성하고 백엔드 로직을 처리하는 역할을 합니다. 대표적인 WAS로는 Apache Tomcat, JBoss, WebSphere 등이 있습니다.