(Spring)클라이언트와 서버<Tomcat 내부구조>

클라이언트와 서버

- 클라이언트 : 서비스를 요청하는 애플리케이션(or 컴퓨터)
- 서버 : 서비스를 제공하는 애플리케이션(or 컴퓨터)

HttpServletRequest

  @Controller
  public class RequestInfo{
    @RequestMapping("/requestInfo")
    public void main(HttpServletRequest request){
      Syste.out.println("request.getMethod()=" + request.getMethod());
    }
  }

위와 같이 서블릿에서 메서드의 매개변수에는 request 및 response를 필수적으로 적어줘야 했지만 스프링에서는 필요한 매개변수만 넣을 수 있다.
필요한 매개변수만 적으면 스프링이 알아서 메서드의 매개변수에 해당하는 객체나 값을 넘겨준다.


⭐Tomcat의 내부 구조⭐

1. 요청이 오면 Thread Pool이 기다렸다가 한가한 Thread가 요청을 받는다.

2. 톰캣서버 안의 Service가 요청을 처리하는데 그 안에 Connector라는 부분이 있다.

3. 요청이 왔을 때 어떤 프로토콜로 왔느냐에 따라 처리할 Connector가 달라진다.

4. Connector에서 받아서 프로세서가 처리하여 Engine(Catalina)에게 전달한다.

5. Engine안에는 Host가 있고 보통은 Host가 하나이지만 여러 개일 수 도 있다.

6. Host안에는 Context가 여러개 있을 수 있고 Context하나가 하나의 WebApplication이다.(Context -> 프로젝트)

7. 위의 과정을 거쳐 해당 서블릿을 호출하는데 스프링에서는 이 서블릿을 DispatcherServlet이라 한다.

8. DispatcherServlet이 받아서 Controller의 main() 메서드를 호출하는 것이 전반적인 동작 과정이다.

 

Reference

'스프링의 정석 : 남궁성과 끝까지 간다' 수강 후 복습한 내용입니다.

'Spring' 카테고리의 다른 글

(Spring)텍스트와 바이너리  (0) 2022.08.31
(Spring) HTTP요청과 응답  (0) 2022.08.31
(Spring) 톰캣 설정 파일  (0) 2022.08.31
(Spring)요청과 응답(HttpServletRequest)  (0) 2022.08.31
(Spring)원격 프로그램의 실행  (0) 2022.08.31