2-5. 클라이언트와 서버

서현우·2022년 5월 11일
1

스프링의정석

목록 보기
5/85

1. 클라이언트와 서버

역할에 따라 구분

  • 클라이언트(Client) : 서비스를 요청하는 애플리케이션
  • 서버(Server) : 서비스를 제공하는 애플리케이션

2. 서버의 종류

어떤 서비스를 제공하느냐에 따라 구분

  • Email Server : Email Service 제공
  • File Server : File 제공
  • Web Server : 브라우져로 할 수 있는 모든 것을 제공

3. 서버의 포트

1대의 PC의 IP주소 : 111.22.33.44
1대의 PC에 여러 서버가 있다면 IP주소:port번호로 서버를 구분

포트번호 80은 생략가능
예)
대표전화 1588-8888
내선번호 #1234, #1111

서버 프로그램을 실행 할 때

  1. 서버와 특정 포트를 연결(binding 한다)
  2. 서버가 포트에서 요청을 기다림(Listening 상태)

(port 1~1023은 예약된 포트
제외한 6만개정도 사용 가능)

4. 웹 애플리케이션 서버(WAS)

웹 애플리케이션 서버(WAS(Web Application Server))

  • 웹 애플리케이션을 서비스하는 서버
  • 서버에 프로그램을 설치해놓고 클라이언트가 이 프로그램을 사용 할 수 있게 해주는 것
  • -> 클라이언트가 원격으로 호출

5. Tomcat의 내부 구조

URL : www.fastfive.co.kr/event/list

Server(Tomcat)
-> Service
----> Engine(Catalina)
-------> Host : www.fastfive.co.kr
----------> Context(스프링 프로젝트) : /event
-------------> 서블릿(Servlet) : /list, 작은 서버 프로그램(=컨트롤러)

디버그 모드
: Toggle Breakpoint -> Debug as -> Debug on Server

실행 순서
: run() -> ThreadPool -> HTTP11Processor -> Engine -> Host -> Context -> Filter -> DispatcherServlet -> Controller ->main()

ThreadPool : 쓰레드를 여러개 미리 만들어 놓음
Connector : HTTP11Processor에서 처음 Request, Response객체가 생성되어 계속 보냄.

profile
안녕하세요!!

0개의 댓글