- Architecture Overview(클라이언트와 서버(1)에서 배웠던 용어 정리)
- 클라이언트와 서버 - 실습
- 클라이언트와 서버 - 정리
1. Architecture Overview(클라이언트와 서버(1)에서 배웠던 용어 정리)
https://tomcat.apache.org/tomcat-9.0-doc/architecture/overview.html
architecture/overview.html에 들어가면 우리가 지금까지 배웠던 Server -> Service -> Engine -> Host -> Context에 대한 설명이 나와 있다.
2. 클라이언트와 서버 - 실습
Toggle Breakpoint는 중단점이다. debug모드를 실행하면 line16에서 멈춘다.
Debug를 클릭한다.
URL에 ch2/rollDice를 입력한다.
Debug가 실행된다.
Debug 창 보면 만들어져 있는 Thread Pool에서 1개의 Thread가 요청을 받아 실행한다.
Debug 창을 맨 아래로 내려보면, 아래부터 호출 스텍이 쌓인 것을 볼 수 잇고 Thread의 run( )부터 시작된다. Thread Pool은 요청이 온 후에 Tread를 만들면 시간이 걸리기 때문에 Tread는 미리 만들어져 있다. 이 중에 놀고 있는 Thread가 요청을 받아서 처리한다.
이 요청을 Http11Processor가 처리한다. Http11 Connector가 받아서 Processor에게 넘겨준다.
Tomcat의 내부구조에서 설명한 Engine -> Host -> Context -> Servlet 순으로 실행된다.
이 그림을 참고하면 Context가 '/ch2'이다.
Http11Processor 후에 Request, Reponse 객체가 만들어 지는데, 요청 정보를 2개의 Request, Reponse 객체에 담아서 계속 전달한다.
3. 클라이언트와 서버 - 정리
1. URL로 요청
2. 만들어져 있는 Threadpool에서 Thread가 요청을 받는다.
3. 프로토콜의 종류에 따라 Connector에 연결한다.
4. HTTP1.1 Processor가 처리하고 Engine -> Host -> Context 순으로 와서 해당하는 Servlet이 실행된다.
'스프링의 정석 > Ch. 02 Spring MVC' 카테고리의 다른 글
ch2_07. HTTP 요청과 응답 - 이론(1) (0) | 2023.04.12 |
---|---|
ch2_06. 설정 파일 - server.xml, web.xml (0) | 2023.04.12 |
ch2_04. HTTP 요청과 응답 - 예제 (0) | 2023.04.10 |
ch2_03. HTTP 요청과 응답 - 실습 (0) | 2023.04.10 |
ch2_01. 원격 프로그램 실행 (0) | 2023.04.08 |