클라이언트와 서버
역할에 따라 클라이언트와 서버를 구분할 수 있다.
클라이언트(client): 서비스를 요청하는 애플리케이션(or 컴퓨터, 브라우저)
서버(server): 서비스를 제공하는 애플리케이션(or 컴퓨터)
서버의 종류
어떤 서비스를 제공하느냐에 따라 종류가 나눠질 수 있다. ex) Email server, file server, Web server
WebServer?
브라우저를 통해서 받을 수 있는 모든 서비스를 칭한다. css, html, 이미지 등 정적인 데이터를 처리해준다. 예를 들어 브라우저에서 byungmin.tistory.com/59 라는 주소를 요청하면 웹서버는 그 요청에 해당하는 화면을 html파일로 뿌려준다. html과 동시에 css, 이미지 파일 등을 같이 뿌려준다.
정적인 컨텐츠 제공
WAS를 거치지 않고 바로 자원을 제공한다.
웹 애플리케이션 서버 (WAS)?
Web Server는 Web을 서비스해주며 WAS는 서버의 프로그램을 사용할 수 있도록 해주는 역할을 한다. 우리가 만든 프로그램을 클라이언트(브라우저)에서 원격호출 할 수 있는 이유가 WAS가 있기 때문이다. 또한 웹서버가 정적인 데이터를 처리해줬다면 WAS는 동적인 데이터를 처리해준다. 브라우저에서 특정 URL로 서버에 요청을 하면 WAS는 Servlet Container 를 통해 해당 요청 데이터를 동적으로 처리하여 브라우저에 뿌려준다.
프로그램 실행 환경과 DB 접속 기능 제공
여러 개의 트랜잭션(논리적인 작업 단위) 관리 기능
업무를 처리하는 비즈니스 로직 수행
서버의 포트
한 대의 PC에 서버 프로그램이 여러개 있다면 클라이언트가 요청했을 때 IP만으로는 어떤 서버에 대한 요청인지 구분할 수 없다. 이 때 필요한게 포트번호이다. 그래서 브라우저는 서버에 요청할 때 포트번호도 같이 보낸다. Web server는 기본이 80이며 생략가능하다. (톰캣은 8080포트)
0 ~ 1023은 예약번호로써 사용하지 않는 것이 좋다.
Web Service Architecture
'프로그래밍 > Spring' 카테고리의 다른 글
[Spring] 관심사의 분리와 MVC 패턴에 대해 알아보자 (0) | 2021.12.29 |
---|---|
[Spring] Tomcat의 내부 구조, 설정 파일에 대해 알아보자 (0) | 2021.12.28 |
[Spring] HTTP 요청과 응답에 대해 알아보자 (0) | 2021.12.28 |
[Spring] 원격 프로그램 실행방법에 대해 알아보자 (0) | 2021.12.27 |
[Spring] Maven Lifecycle에 대해 알아보자 (0) | 2020.09.02 |