개발자 기초부터 시작하기

웹의 동작 원리와 웹 서버, 웹 어플리케이션 서버의 차이점 본문

IT 면접 준비/웹 이론 지식

웹의 동작 원리와 웹 서버, 웹 어플리케이션 서버의 차이점

뉴비늅 2019. 3. 19. 22:49

단순하게 웹은 클라이언트-서버가 요청하고 응답하는 구조라는 단순한 개념만 가지고 있다가 웹 구동 원리에 대한 전반적인 개념과 웹 서버 웹 어플리케이션 서버의 차이가 있다는 것을 알고 정리 해보고자 합니다.


목표

웹 구동 원리

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



여기서 클라이언트와 서버에 대해서 간단하게 정리하고 넘어가자면



  • 클라이언트는 일반적인 웹 사용자의 인터넷이 연결된 장치들(스마트폰, 노트북, 컴퓨터 등)과 이런 장치들에서 이용가능한 웹에 접근하는 소프트웨어 (일반적으로 파이어폭스 또는 크롬 과 같은 웹 브라우저) 입니다.
  • 서버는 웹페이지, 사이트, 또는 앱을 저장하는 컴퓨터입니다. 클라이언트의 장비가 웹페이지에 접근하길 원할 때, 서버로부터 클라이언트의 장치로 사용자의 웹 브라우저에서 보여지기 위한 웹페이지의 사본이 다운로드 됩니다.

웹의 구동 원리 ( 출처 : 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 구동 환경을 제공하는 서버이다.

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

- 동작 프로세스

a) Web Server 의 클라이언트의 요청에 맞는 Servlet을 메모리에 올린다.

b) web.xml에을 참조해 해당 Servlet에 대한 Thread를 생성한다.

c) HttpServletRequest와 HttpServletResponse 객체를 생성하고 그에 맞는 doGet 또는 doPost 메소드를 호출해 생성된 동적 페이지를 Response 객체에 담아 WAS에 전달한다. ex) doGet(HttpServletRequest request, HttpServletResponse response)가 리턴하는 Response 객체를 WAS에 전달.

d) WAS는 HttpResponse 형태로 바꾸어 WebServer에 전달하고 생성된 스레드와 HttpServletRequest, HttpServletResponse 객체를 제거한다.


- 예를 들면 Tomcat, JBoss, Jeus, Web Sphere 등이 있다.





잘못된 부분이 있으면 댓글로 알려주시면 감사하겠습니다 :)


참고사이트

https://limmmee.tistory.com/4

https://jeong-pro.tistory.com/84

http://tcpschool.com/webbasic/works


Comments