프로그래밍/Spring

[Spring] 클라이언트와 서버에 대해 알아보자

byungmin 2021. 12. 28. 11:29

클라이언트와 서버

역할에 따라 클라이언트와 서버를 구분할 수 있다.

 

클라이언트(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 를 통해 해당 요청 데이터를 동적으로 처리하여 브라우저에 뿌려준다.

 

WAS 서버 출처 : https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

 

프로그램 실행 환경과 DB 접속 기능 제공
여러 개의 트랜잭션(논리적인 작업 단위) 관리 기능
업무를 처리하는 비즈니스 로직 수행

 

서버의 포트

한 대의 PC에 서버 프로그램이 여러개 있다면 클라이언트가 요청했을 때 IP만으로는 어떤 서버에 대한 요청인지 구분할 수 없다. 이 때 필요한게 포트번호이다. 그래서 브라우저는 서버에 요청할 때 포트번호도 같이 보낸다. Web server는 기본이 80이며 생략가능하다. (톰캣은 8080포트)

 

0 ~ 1023은 예약번호로써 사용하지 않는 것이 좋다. 

 

Web Service Architecture

Web Service Architecture 출처 : https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html