
죽어도 바뀌지 않아서, 일관성이 있다.
=> 그래서 욕먹긴 한다고 함.
또한 넓은 범위의 회사를 대응할 수 있다.
역할: 클라이언트(웹 브라우저)로부터 오는 HTTP 요청을 가장 먼저 받는 관문입니다. 마치 건물의 "안내 데스크"와 같습니다.
웹 서버 VS 웹 어플리케이션 이 둘에 대한 설명을 명확하게 할 수 있는가?
웹 서버는 ?
톰캣이다.
웹 어플리케이션은?
스프링이다.+ 톰캣 포함.
웹 어플리케이션은 웹사이트 전체를 포함한 하나의 서비스이다.
일반 사용자들이 사용할 수 있는 프로그램이 웹 어플리케이션이고 이 안에서 통신을 위해 사용하는 프로그램이 웹 서버이다.
사용자 -> API요청 -> DNS(http://eugenius.com/member->192.168.0.1) -> PC
PC(Tomcat(웹서버) /member 탐색)
이는 톰캣에 파일 넣는 전형적인 방식이라 복잡한 엔드포인트를 만들어 내는데 한계점이 있다.
그래서 하나로 퉁치고 분기처리 해주는 프로그램이 필요했다. 그래서 생긴것이 "서블릿" 이다.
사용자 -> API요청 -> DNS(http://eugenius.com/member->192.168.0.1) -> PC
PC(Tomcat(웹서버) -> 서블릿 -> 스프링)
역할: 톰캣으로부터 요청을 넘겨받는 스프링의 중앙 통제실 또는 "교통 경찰"입니다.
이 공통된 하나의 엔드포인트 서블릿으로 들어오면 여러개의 자원에 접근 가능하도록 분기처리 해준다.
즉, 스프링이 이해할 수 있는 형태로 변환해주는 것이 서블릿이다.
(구조적으로 보면 스프링이 서블릿을 추상화 해놓은것. 어찌보면 한몸이다. 서블릿의 역할은 스프링을 컨트롤 하는 것이다.)
http://eugenius.com/member -> tomcat -> 서블릿(/member) -> SPRING(MemberController)
이렇게 하면 member에 대한 코드들을 return 받는다.
쿠키나 헤더는 다 서블릿을 통해 접근을 한다.
서블릿은 스프링 앞단에서 작동하는 통신 리소스라고 정리!
서블릿은 나중에 딥다이브 해라. 그래야 http프로토콜 이해하는데 도움이 되고, 면접 때 필요할 것이다.