[AWS] 웹의 구동 원리, Web server& Web Application Server 차이

샤이니·2021년 5월 20일
0

AWS

목록 보기
4/4

웹의 동작 원리

출처 : http://tcpschool.com/webbasic/works

①② 사용자가 웹 브라우저를 통해 찾고 싶은 웹 페이지의 URL 주소를 입력함.

③ 사용자가 입력한 URL 주소 중에서 도메인 네임(domain name) 부분을 DNS 서버에서 검색함.

④ DNS 서버에서 해당 도메인 네임에 해당하는 IP 주소를 찾아 사용자가 입력한 URL 정보와 함께 전달함.

⑤⑥ 웹 페이지 URL 정보와 전달받은 IP 주소는 HTTP 프로토콜을 사용하여 HTTP 요청 메시지를 생성함.

이렇게 생성된 HTTP 요청 메시지는 TCP 프로토콜을 사용하여 인터넷을 거쳐 해당 IP 주소의 컴퓨터로 전송됨.

⑦ 이렇게 도착한 HTTP 요청 메시지는 HTTP 프로토콜을 사용하여 웹 페이지 URL 정보로 변환됨.

⑧ 웹 서버는 도착한 웹 페이지 URL 정보에 해당하는 데이터를 검색함.

⑨⑩ 검색된 웹 페이지 데이터는 또 다시 HTTP 프로토콜을 사용하여 HTTP 응답 메시지를 생성함.

이렇게 생성된 HTTP 응답 메시지는 TCP 프로토콜을 사용하여 인터넷을 거쳐 원래 컴퓨터로 전송됨.

⑪ 도착한 HTTP 응답 메시지는 HTTP 프로토콜을 사용하여 웹 페이지 데이터로 변환됨.

⑫ 변환된 웹 페이지 데이터는 웹 브라우저에 의해 출력되어 사용자가 볼 수 있게 됨.


웹 서버와 웹 어플리케이션 서버의 차이

클라이언트가 서버에 요청을 보내면 서버는 해당 요청에 대해 응답함.

Web Server

  • HTTP 프로토콜을 기반으로 하여 웹 브라우저의 요청을 서비스하는 기능 담당
  • 정적인 컨텐츠( .html / .png / .jpg / .css 등)를 제공할 때에는 WAS를 거치지 않고 바로 제공한다.
  • 동적인 컨텐츠 요청이 들어왔을때에는 해당 요청을 WAS에 보내고 처리한 결과는 WAS가 전달하게 된다.
    • 예를 들면 Apache Server, Nginx, IIS 등이 있다.

WAS(Web Application Server)

  • DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 HTTP 통신을 통해 제공하는 기능을 담당.

  • 웹 컨테이너, 혹은 서블릿 컨테이너 라고도 불리우며 JSP, Servlet 구동 환경을 제공하는 서버이다.

  • 분산 트랜잭션, 보안, 메시징, 스레드 처리 등의 기능을 처리하는 분산 환경에서 사용된다.

  • 동작 프로세스

    1. Web Server 의 클라이언트의 요청에 맞는 Servlet을 메모리에 올린다.
    2. web.xml에을 참조해 해당 Servlet에 대한 Thread를 생성한다.
    3. HttpServletRequest와 HttpServletResponse 객체를 생성하고 그에 맞는 doGet 또는 doPost 메소드를 호출해 생성된 동적 페이지를 Response 객체에 담아 WAS에 전달한다. ex) doGet(HttpServletRequest request, HttpServletResponse response)가 리턴하는 Response 객체를 WAS에 전달.
    4. WAS는 HttpResponse 형태로 바꾸어 WebServer에 전달하고 생성된 스레드와 HttpServletRequest, HttpServletResponse 객체를 제거한다.
  • 예를 들면 Tomcat, JBoss, Jeus, Web Sphere 등이 있다.


ex) 레스토랑에 비유
조리실 안으로 들어오는 주문을 확인하고 역할을 분배하는 메인 셰프가 Web server, 그 아래에서 실제로 요리를 하는 요리사들이 WAS라고 할 수 있다.

즉 서버의 일을 돕는 조력자가 WAS

클라이언트에게 메시지를 받으면 서버는 요청에 필요한 페이지의 로직이나 데이터베이스의 연동을 위해 WAS에 이들의 처리를 요청한다. 그러면 WAS는 이 요청을 받아와 동적인 페이지 처리를 담당하고 DB에서 데이터 정보를 받아온다. 이렇게 WAS는 DB와 연동하여 데이터를 처리한 뒤, 생성한 파일을 다시 서버에게 반환한다.

WAS에서 로직을 수행하다가 DB접근이 필요하면 SQL 질의를 통해 데이터를 요청하고, DB는 요청사항에 맞는 응답을 보낸다.

0개의 댓글