일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- ㅇㅇㅇㄴㅇ
- WebConfigurerAdapter
- ㅂ
- securityconfig
- WebSecurity
- 스프링 #스프링 시큐리티 #spring security
- HttpSecurity
- Session1이 그 모든 클라이언트의 저올
- 스프링시큐리티
- Spring Security
- Today
- Total
다오의 개발일지
Web server, WAS(web application server) | 김영한 MVC1편 본문
web은 기본적으로 서버와 클라이언트의 구조를 가진다. 서버는 클라이언트의 요청을 확인하고 이에 맞는 올바론 응답을 전달한다. 그러면 어떻게 서버는 클라이언트가 어떤 요청을 보냈는지, 다양한 요구에 올바르게 응할 수 있을까?
HTTP (Hyper Text Transfer Protocol)
web은 HTTP통신이라는 것을 통해 서버와 클라이언트들이 서로 통신을 한다. HTTP는 서버와 클라이언트간의 통신 방법이라고 생각하면 된다. HTTP의 요청방식에는 여러가지 형식이 있는데 클라이언트는 이 형식에 맞게끔 요청을 보낼 수 있다. 컴퓨터의 통신에는 정말 많은 종류의 프로토콜이 있지만 웹은 HTTP를 사용하여 통신한다는 점을 기억하자.
모든 것이 HTTP.
클라이언트는 HTTP 메시지에 모든 것을 전송할 수 있다.
웹 서버(Web Sever)
- HTTP 기반으로 동작
- 정적 리소스 제공, 기타 부가기능
- 정적(파일) HTML, CSS, JS, 이미지, 영상
- 예) NGINX, APACHE
정적 리소스? 정적 파일?
우리가 구글에 검색을 해서 검색 결과를 얻으려면 서버는 해당 검색어를 통해 수많은 알고리즘을 통해 관련 결과를 도출해낸다. 하지만 웹 서버는 이러한 기능을 할 수 없다. 어떤 알고리즘이나 요청을 처리하여 다른 결과를 보여주는 것이 아닌, 말 그대로 정적인, 항상 같은 결과를 응답할 수 밖에 없다. 인터넷 사전, 백과사전 등을 생각하면 편하다, 이미 정해져있고 앞으로 변하지 않을만한 것들을 우리는 정적 리소스, 정적 파일이라고 한다.
웹 애플리케이션 서버(WAS - Web Application Server)
- HTTP 기반으로 동작
- 웹 서버 기능 포함
- 프로그램 코드를 실행해서 애플리케이션 로직 수행
- 동적 HTML, HTTP API(JSON)
- 서블릿, JSP, 스프링 MVC
- 톰캣, Jetty, Undertow
우리가 주목해야할 것은 WAS이다. 정적인 리소스, 정적 파일만을 응답하는 웹 서버와는 반대로, 동적인 처리(알고리즘)를 통해 사용자별로 다른 응답을 도출해낼 수 있는 기능을 한다.
음식점으로 비유하면, 웹 서버는 메뉴판(정적 리소스)만을 전달할 수 있는 서버지만, WAS는 손님마다 각각 다른 음식을 주문하면 요청한 손님마다 다른 음식들을 전달할 수 있다.
최소한의 웹 시스템 구성 - WAS, DB
WAS는 정적 리소스, 애플리케이션 로직 모두 제공 가능하기 때문에 WAS만으로 웹시스템을 구성할 수 있다. 하지만, WAS가 너무 많은 역할을 담당하면서, 서버의 과부하가 올 수 있다. 가장 비싼 애플리케이션 로직이 정적 리소스 때문에 수행이 어려울 수 있다. WAS 장애 시 오류 화면도 노출 불가능하다. 비용 또한 증가한다.
따라서, 일반적으로 웹서버와 WAS를 같이 사용하여 부담을 줄인다.
업무를 분담할 수 있어, 예외상황에 유연하게 대응이 가능하다.
WAS나 DB의 서버에 에러가 생기면, 웹서버가 에러페이지를 내보내 상황을 알릴 수 있다.
'Spring > 스프링 MVC 1편 | 김영한' 카테고리의 다른 글
프로젝트 생성 | 김영한MVC1편 (0) | 2024.09.24 |
---|---|
자바 웹 기술 역사 | 김영한MVC1편 (0) | 2024.09.24 |
HTML, HTTP API, CSR, SSR | 김영한MVC1편 (1) | 2024.09.24 |
동시요청 - 멀티 쓰레드 | 김영한MVC1편 (0) | 2024.09.24 |
서블릿 | 김영한MVC1편 (0) | 2024.09.19 |