웹의 동작 원리를 한 줄로 표현하면,
"클라이언트가 서버에 요청을 보내면, 서버는 요청에 대한 응답을 한다." 이다.
이번 포스팅에선 웹(Web)의 동작 원리에 대해 알아본다.
📖 웹(Web) 용어 정리
🔎 Web Client
- 사용자 대신 요청을 보내는 프로그램
- 클라이언트는 사용자로부터 받은 URL에 대한 정보를 찾아서 HTTP 메세지 형태로 서버에게 요청 (HTTP Request)
- ex) Chrome, Firefox 같은 웹 브라우저
🔎 Web Server
- 정적 리소스를 직접 제공하는 프로그램
- 클라이언트가 웹 브라우저를 통해 요청한 정적 콘텐츠를 제공하는 역할
- 클라이언트에서 요청한 HTTP 메세지를 확인한 후 HTML, CSS, Image 등의 데이터를 처리하여 클라이언트에게 응답 (HTTP Response)
- ex) Apache Web Server 등
🔎 Web Application Server(WAS)
- 동적 요청을 처리하고 서버 측 로직을 수행하는 프로그램
- WAS를 실행하여 동적 콘텐츠(게시물 작성, 수정 등)를 생성하고, 웹 서버와 클라이언트 간의 데이터 처리 담당
- WAS는 클라이언트의 요청에 따라 DB에서 정보를 가져오거나, 웹 애플리케이션을 실행하여 동적인 웹 페이지를 생성한 후 결과를 웹 서버에 전달
- 클라이언트에게 메세지를 받으면 서버는 요청에 필요한 로직이나 데이터베이스의 연동을 위해 WAS에게 요청, 연동하여 얻은 데이터를 다시 서버에게 반환
- ex) Apache Tomcat, IIS 등
🔎 Database(DB)
- 데이터를 저장하는 공간
- WAS에서 데이터를 요청하면 필요한 데이터를 응답
- WAS에서 로직을 수행하다가 데이터를 받아와야 하는 작업이 생기면, SQL 질의를 통해 DB에 접근
📖 웹(Web) 동작 순서

-
사용자가 웹 브라우저의 검색창에 찾고 싶은 웹 사이트의 URL 주소를 입력하여 접속
-
웹 브라우저가 DNS(Domain Name System)에게 사용자가 입력한 사이트의 도메인 주소 요청
-
DNS 서버에서 해당 도메인 네임에 해당하는 IP 주소를 응답
-
웹 브라우저가 웹 서버에게 IP 주소를 이용하여 HTML 문서를 요청 (HTTP Request)
-
웹 서버는 바로 웹 페이지를 공급하지 못하고, WAS와 DB에서 웹 페이지 작업을 처리
-
작업 처리 결과를 웹 서버로 전송
-
웹 서버는 웹 브라우저에게 HTML 문서 결과를 응답 (HTTP Response)
-
웹 브라우저는 화면에 웹 페이지를 출력
📖 참고 자료
https://swimjiy.github.io/2019-11-03-How-Web-Works