- 웹은 HTTP 기반으로 통신한다.
- 웹 브라우저에서 URL을 치면, 인터넷을 통해 서버에 접근하고, 서버에서 HTML을 만들어 웹 브라우저에 전달하면, 웹 브라우저가 클라이언트에게 HTML 화면을 보여준다.
- 클라이언트에서 서버로 데이터를 전송할 때, 서버에서 클라이언트로 데이터를 응답할 때, 둘 다 HTTP 프로토콜 기반으로 동작한다.
- HTTP 메시지에 모든 것을 전송 (거의 모든 형태의 데이터를 전송할 수 있다.)
- HTML, TEXT
- 이미지, 음성, 영상, 파일
- JSON, XML (API)
- 서버 간에 데이터를 주고받을 때도 대부분 HTTP 사용
- 웹 브라우저에서 URL을 치면, 인터넷을 통해 서버에 접근하고, 서버에서 HTML을 만들어 웹 브라우저에 전달하면, 웹 브라우저가 클라이언트에게 HTML 화면을 보여준다.
- 웹 서버
- HTTP 기반으로 동작하는 서버
- 정적리소스 제공 (+기타 부가기능)
- 정적(파일)HTML, CSS, JS, 이미지, 영상
- 웹 서버 예) NGINX, APACHE
- 웹 애플리케이션 서버 (WAS: Web Application Server)
- HTTP 기반으로 동작하는 서버
- 웹 서버 기능 다 포함 (정적리소스 제공 등)
- 프로그램 코드를 실행해서 애플리케이션 로직 수행
- 동적HTML, HTTP API(REST API) (JSON)
- 서블릿, JSP, 스프링 MVC
- WAS 예) 톰캣, Jetty, Undertow
- 웹 서버, 웹 애플리케이션 서버(WAS) 차이
- 웹 서버는 정적리소스(파일), WAS는 애플리케이션 로직도 실행 가능
- 하지만, 웹 서버도 프로그램을 실행하는 기능을 포함하기도 하고, 웹 애플리케이션 서버도 웹 서버의 기능을 제공한다. (구분하기가 모호..)
- 자바는 서블릿 컨테이너 기능을 제공하면 WAS (하지만, 서블릿없이 자바코드 실행하는 서버 프레임워크도 있음)
- 결론 →WAS는 애플리케이션 코드를 실행하는 데에 더 특화
- 웹 서버는 정적리소스(파일), WAS는 애플리케이션 로직도 실행 가능
- 웹 시스템 구성
- WAS, DB
- WAS와 DB만으로 웹 시스템 구성 가능
- 문제
- WAS가 너무 많은 역할 → 서버 과부하 우려
- 가장 비싼 애플리케이션 로직이, 정적 리소스 때문에 수행이 어려울 수 있다.
- WAS 장애시 오류 화면도 노출 불가능
- WEB, WAS, DB
- 정적 리소스는 웹 서버가 처리하고, 웹 서버는 애플리케이션 로직같은 동적인 처리가 필요하면 WAS에 요청을 위임 →WAS는 중요한 애플리케이션 로직 처리를 전담
- 장점
- 효율적인 리소스 관리
- 정적 리소스가 많이 사용되면, Web 서버 증설
- 애플리케이션 리소스가 많이 사용되면, WAS 증설
- 정적 리소스만 제공하는 웹 서버는 잘 죽지 않고, 애플리케이션 로직이 동작하는 WAS 서버는 잘 죽는다. →즉, WAS, DB 장애시 WEB 서버가 오류화면 제공 가능
- 효율적인 리소스 관리
Spring 입문2 -spring 웹 개발 기초 (tistory.com)
728x90
반응형
'Spring Tutorial' 카테고리의 다른 글
[스프링 MVC 7] 서블릿: Hello 서블릿 (0) | 2023.07.17 |
---|---|
[스프링 MVC 6] 서블릿: 프로젝트 생성 (0) | 2023.07.17 |
[스프링 MVC 0] [스프링 MVC 백엔드 웹 개발 핵심 기술, 활용 기술] (0) | 2023.07.16 |
[Spring 입문 10] 스프링 DB 접근 기술: 순수 JDBC (0) | 2023.07.08 |
[Spring 입문 9] 스프링 DB 접근 기술: H2 데이터베이스 설치 (0) | 2023.07.08 |