Last updated
Last updated
클라이언트와 서버 간 통신은 다음과 같이 이루어진다.
사용자는 클라이언트가 제공하는 문서(html)를 이용해 정보를 전달하거나 요청
클라이언트는 사용자의 행동을 기반으로 HTTP 요청 메시지를 생성하여 서버에 전달 (request)
서버는 요청을 분석하여 알맞은 응답을 반환 (response)
클라이언트의 요청에 대해 이미 생성된 문서를 제공하는 서버를 말한다.
문서의 일부만을 조작할 수 없다. 사용자 A, B, C의 요청에 대해 각 사용자를 위한 응답을 주고자 한다면 3개의 문서를 준비해야 하는 것이다. 이러한 문제점 때문에 동적 서버가 등장하게 되었다.
클라이언트의 요청을 기반으로 서버 내에 작성된 코드를 실행시켜 동적으로 데이터를 생성하고 제공하는 서버를 말한다.
동적인 문서를 제공한다고 해서 Web Container만 존재해도 되는 것은 아니다. 정적인 데이터는 여전히 Web Server에서 제공하며, Web Container는 코드를 실행하여 생성해야 하는 동적인 데이터의 처리만 맡는다. 이는 다음의 두 가지 이유 때문이다.
줄 수 있는 데이터는 우선적으로 주기 위함
식당에서 사이드 메뉴를 먼저 내 주는 것과 비슷한 이유이다.
웹 컨테이너의 부담을 줄이기 위함
두 가지를 모두 웹 컨테이너가 처리하게 된다면, 결과적으로는 웹 컨테이너에 과부하가 와서 응답 속도가 느려질 것이다.