[Spring] Spring MVC framework를 사용한 웹은 어떻게 작동할까?

2021. 7. 19. 14:35프로그래밍/web

Spring MVC 패턴에서 url을 통해 response를 날린 경우 어떻게 처리 되는지 알아보자.

 

 

1. 클라이언트(사용자)가 주소창에 URL을 입력

 

2. 브라우저는 DNS를 운영하는 서버를 통해 접속하려는 서버의 IP주소를 받아온다. 
예를 들어 사용자가 www.naver.com을 접속 시도할 경우, ping 명령어를 통해 확인해보면 DNS 서버에서 
125.209.222.142로 IP 주소를 리턴해, 해당 IP주소로 서버에 요청을 받음을 알 수 있다.

 

3. 브라우저가 DNS서버에서 받아온 IP주소에 위치한 서버에 요청을 보낸다.
(해당 IP주소에 위치한 서버가 Spring MVC를 따른다고 가정하자)

 

4. 

4-1. 해당 서버의 Dispatcher Servlet이 request를 받는다. 

4-2. Handler Mapper로 해당 request를 보내서, 그에 맞는 Controller가 있는지 확인한다. 있다면 해당하는 Controller를 반환, 없다면 404를 리턴해준다.

4-3. Handler Mapper에서 반환된 Controller로 request를 보내고, 보내기 위한 Model를 구성.

4-4. Model에서 CRUD를 위한 Model 정보를 Controller에게 response 해주면, Controller는 이를 받아 Model을 완성시켜 다시 Dispatcher Servlet에 반환해준다.

4-5. Dispatcher Servlet은 View Resolver를 통해 request에 해당하는 view 파일 탐색 후 받는다.

4-6. 받아낸 View 페이지 파일에 Model를 보내고, Client에 뿌려줄 페이지를 완성해서 얻어냄.

4-7. 완성된 View파일을 클라이언트에 Response하여 화면에 출력.