1) Http?
서버(갑)는 클라이언트(을)의 요청을 받아 응답을 해줌.
요청은 URL을 통해서 하게 됨. 이 때 URL을 통한 요청은 static 통신임. 단발적인 요청.
소켓 통신은 연결이 지속됨.
2) 톰켓?
아파치는 웹 서버임.
톰켓은 자바코드를 서버가 이해할 수 있도록 컴파일 해주는 녀석임. (JSP를 받아서 해줌)
그렇게 컴파일을 해서 .html 파일을 응답해 주는 것임.
*URL: 자원에 접근
*URI: 식별자에 접근
3) web.xml
- ServletContext의 초기 파라미터
- Session의 유효시간 설정
- Servlet/JSP 매핑
- Mime Type 매핑 --> 내가 요청시 들고 올 데이터가 뭔지 물어보는 것.
- Welcome File list
- Error Pages 처리
- 리스너/필터 설정
- 보안
4) FrontController 패턴
- 최초 앞단에서 request요청을 받아서 필요한 클래스에 넘겨줌. web.xml에 전부 다 정의하기 힘들기 때문.
5) RequestDispatcher
- 필요한 클래스 요청이 도달했을 때 FrontController에 도착한 request와 response를 그대로 유지시켜 줌.
- 그래야 기존의 데이터를 유지한 채 페이지를 이동할 수 있게 됨.
6) DispatcherServlet
- FrontController와 RequestDispatcher를 합쳐놓은 것임. 스프링에서 기본 제공함.
7) 스프링 컨테이너
- 수많은 객체들이 ApplicationContext에 등록됨. IoC를 통해 스프링이 객체를 생성하고 레퍼런스 변수를 관리해줌.
- ApplicationContext는 싱글톤 방식으로 관리되기 때문에 어디서 어떻게 접근하든지 동일 객체임이 보장됨.
- 그리고 이 컨테이너에서 필요할 때 DI를 해줌.
8) 요청 주소에 따른 적절한 컨트롤러 요청 (Handler Mapping)
- GET 요청
- 해당 주소 요청이 오면 적절한 컨트롤러의 함수를 찾아서 실행
9) 응답
- html을 응답할 지 Data를 응답할지 결정해야 하는데 html 파일을 응답하게 되면 ViewResolver가 관여하게 됨.
- Data를 응답하게 되면 MessageConverter가 작동하게 됨. 이 때 기본전략은 JSON임.
'취업 준비 > Spring boot' 카테고리의 다른 글
5. Http 1.1 실습 (0) | 2022.01.21 |
---|---|
4. HTTP1.1 체험하기 (0) | 2022.01.21 |
3. MySQL 설정하기 (0) | 2022.01.20 |
2. 의존성 설정 (0) | 2022.01.20 |
1. 준비하기 (0) | 2022.01.20 |