대부분의 초보 개발자들이
WEB은 정적인 걸 전달하고 WAS는 동적인 걸 전달해준다?
이렇게 막연하게 대답하곤 한다.
업무 중에 서버 목록을 보면
WEB도 여러 개 WAS도 여러 개 떠있는데
그럼 WEB이 저렇게 여러 대 떠있을 필요가 있는건가?
대체 WEB이 정확히 무슨 역할을 하는 것이고
WAS는 어디부터 어디까지 해주는건지 정확히 알고 싶어서 공부하기로 했다

WEB 서버는 WAS 안에 포함되어있다고 한다.
그럼 WEB과 WAS를 구분짓는건 저 Web container뿐인데
동적인 데이터 처리? 서블릿 구동 환경 제공?
알거같은데 모르겠음
JSP를 예로 들면 그 템플릿을 해석하는 역할이나(jsp의 반복문 등의 문법)
JAVA언어를 해석하여 페이지를 만들어내는 역할을 이 Web container가 수행한다고 한다
그럼 그렇게 다 만들어진 페이지는 최종적으로 정적으로 바뀌는 것이고
그걸 클라이언트한테 전달하는 역할을 웹 서버가 담당한다고 한다
완전히 정적인 페이지나, Web container의 해석으로 인해 만들어진 페이지를
단순히 전달만 해주는게 Web server의 역할인 것이다.
좀 세부적으로 들어가면 WEB server와 WAS가 하는 일은 더 많은데
우리가 http프로토콜로 요청과 응답을 주고 받는 것
정적인 리소스들의 캐싱
로드밸런싱이나 보안(SSL/TLS 암호화 등)의 역할을 WEB server가 맡고 있다고 한다.
내 생각에 쌩 기초에서 조금 벗어나는 내용이므로 나중에 다시 깊게 공부해야겠다.
WAS도 저런 템플릿 엔진, 언어 해석 외에도
세션관리나 데이터와의 연동 등 다양한 역할을 수행한다고 한다.
뭔가 코드 단에서 일어나는 일들은 전부 WAS가 담당한다고 생각해도 될것같다.
그래서 WEB보다 WAS서버가 더 많이 띄워져 있었던 것 같다
흔히 우리가 아는 JSP처럼 요청이 들어오면 새로 그려주는 방식을
서버 사이드 렌더링(SSR) 이라고 한다
WAS가 전부 만들어놓은 페이지를 요청에 따라 WEB server가 전달해주는 방식이다
하지만 Vue같은 클라이언트 사이드 렌더링 방식의 경우에는 그럼 어떻게 되는걸까?
그건 어느 쪽에서 일하는거지? 생각이 들어 알아보니
당연히 Client쪽에서 일하는것이였다...
데이터만 제공 받고 클라이언트 측에서
브라우져에 의해 계속 새로운 페이지를 렌더링하는것이다...
뭔가 허무하기도 하고
왜 CSR이 검색 엔진 노출에 불리한가 제대로 알게된것같다