- 클라이언트(client) : 서비스를 요청하는 애플리케이션(or 컴퓨터)
- 서버(server) : 서비스(service)를 제공하는 애플리케이션(or 컴퓨터)
명확하게 부분을 나눠보자면
클라이언트의 브라우저가 클라이언트 애플리케이션
클라이이언트의 컴퓨더
서버 컴퓨터
Tomcat은 서버 애플리케이션으로 볼 수 있다
(역할에 따른 구분이다 서비스를 요청하는게 클라이언트고, 서비스를 제공하는게 서버)
✔ 애플리케이션이란?
기술, 시스템 및 제품 등을 사용하는 것을 말한다
애플리케이션이란 애플리케이션 프로그램, 즉 응용프로그램의 줄임 말이다
응용프로그램은 사용자 또는 어떤 경우에는 다른 응용프로그램에게, 특정한 기능을 직접 수행하도록 설계된 프로그램이다
✔ Email service를 제공하는게 Email server고,
File service를 제공하는건 File server,
Web 서비스를 제공하는건 Web server이다
여기에서 Web 서비스를 제공한다는 건 우리가 브라우저를 통해서 받을 수 있는 모든 서비스를 제공한다
❗❗ 이럴때 필요한게 포트번호이다
그래서 IP주소와 포트번호를 함께 써준다 !
그렇게 되면 클라이언트가 어느 서버로 보내는지 구분이 가능하다
대표전화에 내선번호가 있는걸 생각하면 이해가 쉽다
0-1023번 포트번호까지는 예약되어있어서 사용할 수 없다 (잘 알려진 포트번호)
예약된 포트를 제외하고 약 6만개가 사용가능하다
- Web Server : Web을 서비스
- WAS : Web Application Server : 웹 애플리케이션(프로그램)을 서비스한다
- server에 프로그램을 설치해 놀고 클라이언트가 프로그램을 사용할 수 있게 해준다
브라우저가 요청을 하면 tomcat에 미리 만들어진 여러 Thread pool 중 하나가
tomcat 서버 안에 있는 service 안에
connector 에 어떤 protocal 종류인지에 따라 처리할connector가 달라진다
(예를들어 http로 왔으면 HTTP1.1 connector가 처리한다)
connector가 정해지면 Engine(Catalina) 으로 요청을 보낸다(Catalina는 엔진 이름)
Engine에는 Host 가 있는데 n개 가능하다(여러개)
그리고 그 host에는 context (= 스프링 프로젝트) 가 있는데 이것도 여러개 있을 수 있다(하나의 context가 web application) ex) /ch2 , /ch3 , ...
web application 안에는 여러개의 Servlet 이 있다! ex) /ch2/list , /ch3/detail , ...
서블릿 : Servlet(작다라는 뜻) / 작은 서버 프로그램
즉, 서버 프로그램 여러개가 같은 context 안에서 돌아간다는 뜻이다 ❗
url과 연결된 서블릿이 실행된 결과가 클라이언트한테 전달된다