1. 클라이언트와 서버
- 클라이언트(client) : 서비스를 요청하는 애플리케이션(or 컴퓨터)
- 서버(server) : 서비스를 제공하는 애플리케이션(or 컴퓨터)
ex) 내가 브라우저에 주소를 입력하면 -> 내 컴퓨터는 클라이언트 컴퓨터, 주소를 입력한 브라우저는 클라이언트 app /응답하는 컴퓨터는 서버 컴퓨터, 응답하는 톰캣은 서버 app
2. 서버의 포트
어떤 서비스를 제공하는지에 따라서 서버가 여러 종류 있을 수 있다.(ex. Email server, File server, Web server ..)
하나의 컴퓨터에 여러 서버가 있을 경우, IP만으로는 어떤 서버에 요청을 보낸 건지 알 수 없다. 따라서 어떤 종류의 서버에 보낸 요청인지 알려주기 위해 포트 번호를 같이 써줘야 한다. (ex. 111.22.33.44:25)
참고로 Web server (포트번호:80)은 생략 가능하다.
3. WAS
- Web Server : web을 서비스
- WAS(Web Application Server) : 서버에 프로그램을 설치하고 클라이언트가 사용할 수 있게 해 줌
4. Tomcat의 내부 구조
요청이 들어오면 -> 포트번호에 해당하는 서버에서 -> Thread Pool(미리 만들어놓은 여러개의 Thread)에서 한가한 Thread 사용 -> 프로토콜에 해당하는 Connector가 -> Egine -> Host -> Context -> 서블릿을 호출한다.
5. Tomcat 설정 파일
- 톰캣설치경로/conf/server.xml : Tomcat 서버 설정 파일
- 톰캣설치경로/conf/web.xml : tomcat의 모든 web app의 공통 설정
- 웹앱이름/WEB-INF/web.xml : web app 의 개별 설정
STS에서 보면 Servers 아래에서 설정 파일들을 확인할 수 있다. 이 파일들은 Tomcat의 conf 폴더에 있는 설정 파일의 복사본으로, 하나의 Tomcat 프로그램을 공유하면서 설정만 다른 여러 서버를 등록할 수 있다.
1) server.xml
server.xml 파일에서 포트번호를 변경할 수도 있다. 여기서 port="8088" 을 port="80"으로 변경해주면, 실행 할 때 포트번호를 붙여주지 않아도 된다.
Engine은 여러 Host를 포함할 수 있다. 그 중에서 어떤 Host를 default로 할 것인지 지정할 수 있다.
2) web.xml
원격 프로그램을 사용하려면 1.서블릿 등록(원격 프로그램 등록) 2. URL 맵핑 이 필요하다고 했다. web.xml 파일에서 설정할 수 있다.
다만 요즘은 web.xml 파일에 설정하는 대신 애노테이션(@Controller, @RequestMapping ) 기반으로 바뀌고 있다.
개별 설정 web.xml 파일에서도 1.원격프로그램 등록 2.URL 맵핑 코드를 확인할 수 있다.
참조
https://fastcampus.co.kr/dev_academy_nks
'3. Back-end > 3-2. Spring MVC - 남궁성' 카테고리의 다른 글
Spring MVC - [ 바이너리 파일 ] (0) | 2022.10.18 |
---|---|
Spring MVC - [ HTTP 요청과 응답 - 이론] (0) | 2022.10.14 |
Spring MVC - [ HTTP 요청과 응답 - HttpServletRequest ] (0) | 2022.09.20 |
Spring MVC- [원격 프로그램의 실행] (0) | 2022.09.05 |
Spring - [기본 개발 도구 설치 - JDK11 / SDS3 / IntelliJ / Tomcat / VS Code] (0) | 2022.09.05 |