(오류 수정은 환영합니다!)
📕BASIC-정적 페이지
정적 페이지란 누가 요청하더라도 항상 같은 내용을 표시하는 웹 페이지를 말한다. 주로 html, 자바스크립트, css, 이미지만으로 이루어진 페이지가 이에 해당한다.
- (ex: 블로그, 회사나 개인 소개 페이지는 누가 보더라도 같은 내용을 보여준다.)
📕BASIC-동적 페이지
반면 동적 페이지란 동일한 요청이라도 누가, 언제, 어디서, 어떻게 요구 했는지에 따라 각각 다른 내용이 반환 되는 페이지를 말한다.
- (ex: 현재 시각 보여주는 페이지, 온라인 쇼핑몰에서 사용자마다 다른 카트 내용을 보여주는 페이지 등 사용자나 상황에 따라 다른 화면을 보여주는 페이지들)
- 동적 페이지는 프로그래밍 코드가 포함되어 있어 페이지 요청 시점에 html문장을 만들어내고 화면에 띄워준다.
📕서론
웹 초기에는 정적 페이지만 만들 수 있었다. 하지만 사람들은 이에 만족할 리가 없다. 사용자나 상황에 따라 다른 페이지를 보길 원했다. 다양한 퍼포먼스를 위해 동적 페이지 요구가 많아지면서 동적인 페이지를 처리할 수 있는 서버 기술들을 개발했다. 그것이 바로 현재의 WAS 이다.
<aside>
💡 WAS = Web server + 동적인 처리 기능(컨테이너)
</aside>
- WAS와 웹 서버를 묶어서 WAS 라고 볼 것이냐, 나눠서 볼 것이냐는 사실 그렇게 의미가 없다. 이는 상황에 따라 다른 것이기 때문이다.
- 개인용 프로젝트의 경우 하나의 컴퓨터로 충분히 트래픽을 감당할 수 있다.(사용자가 없으니까..ㅠ) 하지만 거대 IT기업들이 운영하는 사이트는 동시에 엄청난 트래픽이 오고 가기 때문에 하나의 컴퓨터로 모든 작업을 처리하기는 불가능이다. 그래서 Web server를 주로 처리하는 컴퓨터와 동적인 처리를 주로 처리하는 컴퓨터를 나눠서 관리하는 것일 뿐 두 상황 모두 WAS를 운영하고 있는 것이다.
📕웹 애플리케이션 서버(WAS) 방식
- WAS는 동적인 데이터들을 처리해 정적인 페이지로 생성할 줄 아는 서버이다. 웹서버보다 기능이 더 많고 종류도 다양하다. (자바는 tomcat, 파이썬은 uwsgi, gunicorn)
- 클라이언트가 페이지를 요청하게 되면 정적인 부분은 웹 서버가 혼자 처리해서 클라이언트에게 넘겨주고 만약 동적인 부분이 필요하면 이를 Web container에 요청하고 가공된 정보를 함께 얹어서 클라이언트에게 넘겨준다.
- 정적인 부분은 웹 서버가, 동적인 부분은 web container가 처리함으로써 더 많은 요청들을 빠르게 처리할 수 있다.