서버와 클라이언트 이해하기

Updated:

웹 어플리케이션은 일반적으로 아래와 같은 구조로 만들어진다. WEB, WAS, DB 서버는 물리적인 서버가 아닌 논리적인 구조이다.
물리적인 구성은 서버의 스펙과 사용자 수 , 보안 및 네트워크 구조 등에 맞춰 설계된다.

  1. 사용자가 URL을 통해 WEB서버를 호출하고 요청사항을 객체(request)에 담아 전송
  2. web서버는 요청 객체(request)를 받아서 바로 처리하거나 어플리케이션 서버(was)로 객체 전달
  3. was서버는 요청에 대한 내용과 요청 객체(request)를 받아 적절히 처리 (필요시 db 작업 진행)
  4. was 서버는 처리 후 결과를 응답 객체(response)에 담아 web서버로 회신
  5. web서버는 응답 객체(response)를 다시 사용자에게 회신
  6. 사용자의 브라우저는 web서버가 보내준 코드를 해석해 화면을 구성하여 출력

1. 웹서버

클라이언트의 요청을 기다리고 요청에 대한 데이터를 만들어서 응답하는 역할.
이때 데이터는 정적인 데이터로 한정된다.

2. WAS(웹 어플리케이션 서버)

컨테이너, 웹 컨테이너, 서블릿 컨테이너라고도 부름.
웹 서버와 웹 컨테이너의 결합으로 다양한 기능을 컨테이너에 구현하여 다양한 역할을 수행한다.
웹 컨테이너는 클라이언트의 요청이 있을 때 내부 프로그램을 통해 결과를 만들어내고 이것을 다시 클라이언트에게 돌려주는 역할

3. 웹서버(Apache)와 웹애플리케이션(톰캣)의 차이

목적이 다르다. (웹 컨테이너의 유무)
웹서버는 정적인 데이터를 처리하는 서버, 이미지나 단순 HTML을 처리하는 서버라면 웹 서버가 적당하며 빠르고 안정적이다.
WAS는 동적인 데이터를 처리하는 서버, db연결, 데이터 조작등과 같은 처리는 was를 활용해야 한다.

톰캣은 아파치의 기능(웹서비스 데몬, Httpd)를 포함하고 있지만 톰캣이 아파치의 모든 기능을 포함하고 있는 것은 아니다.

4. SPA(Single Page Application)

단일 페이지 어플리케이션.
웹 애플리케이션에 필요한 모든 정적 리소스를 최초에 한번 다운로드하고 이후 새로운 페이지 요청 시 , 페이지 갱신에 필요한 데이터만을 전달 받아 페이지를 갱신하므로 전체적인 트래픽을 감소할 수 있고, 전체 페이지를 다시 렌더링하지 않고 변경되는 부분만을 갱신하므로 새로고침이 발생하지 않아 네이티브 앱과 유사한 사용자 경험을 제공할 수 있다.

Reference

https://limmmee.tistory.com/4
https://codevang.tistory.com/191

Leave a comment