새소식

web server

[web] 웹 서버와 웹 애플리케이션 서버

  • -
728x90

웹 서버와 웹 애플리케이션 서버는 비슷해보이지만 서로 다르다. 그 차이는 무엇일까?

웹이란?

그것에 대해 이야기하기 전 먼저 웹에 대해서 이야기하겠다. 웹이란 무엇일까? 우리는 일상 속에서 웹이라는 단어를 자주 사용하고, 보통 그것은 브라우저에서 보는 웹페이지를 의미할 것이다. 그래서 웹이란? 월드 와이드 웹(World Wide Web)의 줄임말으로 인터넷을 통해 접근하고 사용하는 정보 및 서비스의 모음을 의미하며, 1989년 팀 버너스리가 처음 만들었다.

웹은  http 프로토콜을 통해 html, image, video, sound와 같은 데이터를 주고 받으며, 전 세계의 컴퓨터 네트워크를 연결하여 정보를 공유하고 사용자들이 서로 상호작용할 수 있는 플랫폼을 제공한다.

HTTP (Hypertext Transfer Protocol): HTTP는 웹에서 데이터를 주고받을 수 있는 프로토콜. 웹 브라우저와 웹 서버 간의 통신에 사용되며, 웹 페이지를 요청하고 응답하는 데에 활용된다.

간단하게 웹브라우저의 동작 원리를 통해 어떻게 통신하는지 알아보자.

  1. 어떤 사람이 한 웹 사이트에 접속하고 싶다면 해당 URL 주소를 웹 브라우저에 입력한다
  2. 웹 브라우저는 DNS 서버로 가서 해당 URL 주소의 IP 주소를 알아낸다
  3. 웹 브라우저는 알아낸 IP 주소로 데이터를 요청한다.
  4. 웹 서버는 요청을 보낸 클라이언트에게 http status code 200을 리턴하고 패킷에 데이터를 담아 보낸다
  5. 웹 서버는 TCP 통신에 따라 패킷을 모아 데이터로 만들고 랜더링하여 사용자에게 최종적으로 보여준다.
DNS 서버(Domain Name System): 인터넷 상에서 도메인 이름을 IP 주소로 변환하거나, 그 반대로 IP 주소를 도메인 이름으로 변환하는 역할을 수행하는 시스템을 이야기함. 
HTTP 상태 코드(HTTP Status Code): 웹 서버가 클라이언트로부터 받은 HTTP 요청의 처리 결과를 나타내는 숫자 코드로 세 자리 숫자로 구성되며, 다음과 같이 그 의미와 범주에 따라 여러 그룹으로 나누어 진다. 404 Not Found도 여기에 속한다.
TCP(Tansmission Control Protocol): 인터넷 프로토콜 스위트(IP 프로토콜 패밀리)에 속하는 프로토콜로, 컴퓨터 네트워크에서 신뢰성 있는 데이터 전송을 담당하는 프로토콜

웹 서버

웹 서버는 클라이언트의 HTTP 요청을 받아 정적인 웹 콘텐츠(HTML 파일, 이미지, CSS, JavaScript 등)를 제공하는 역할을 한다. 주로 웹 페이지의 정적인 요소를 처리하며, 클라이언트의 요청에 따라 해당하는 파일을 찾아 응답으로 전송한다. 웹 서버는 보통 정적인 파일들을 저장하고 관리하는데, 이러한 파일들은 변경되지 않거나 자주 변경되지 않는 것들이다.

이러한 웹 서버의 종류에는 아파치(Apache), 엔진엑스(NGINX) 등이 있다

웹 애플리케이션 서버

웹 애플리케이션 서버는 동적인 웹 애플리케이션의 로직을 처리하고 데이터베이스와의 상호작용, 비즈니스 로직, 사용자 인증 등을 담당한다. 웹 애플리케이션 서버는 사용자의 요청에 따라 동적으로 생성되는 콘텐츠를 처리하며, 웹 애플리케이션의 핵심 기능을 구현하고 제공한다.

이러한 웹 애플리케이션 서버의 종류에는 장고(Django)와 플라스크(flask) 등이 있다.

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

  1. 웹 서버는 정적인 콘텐츠(파일)를 제공하고, 웹 애플리케이션 서버는 동적인 웹 애플리케이션의 로직을 처리한다.
  2. 웹 서버는 주로 HTML, 이미지, CSS 등의 정적 파일을 처리하며, 웹 애플리케이션 서버는 동적 데이터를 생성하여 HTML을 구성하고 클라이언트에 전달한다.
  3. 웹 서버는 주로 파일을 읽어서 전송하므로 동적인 데이터 처리에 제한적이다. 하지만 웹 애플리케이션 서버는 데이터베이스와 연동하여 동적 데이터 처리를 가능케 한다.

그렇다면 웹 애플리케이션 서버만 필요한 게 아닌가? 하고 생각할 수 있지만 그건 아니다. 웹 서버는 장고나 플라스크의 파이썬 코드를 이해하지 못한다. 즉 웹 서버와 프레임워크는 통신을 할 수 없다. 그렇기 때문에 WSGI가 만들어졌다. 

WSGI(Web Server Gateway Interface)는 파이썬 웹 애플리케이션과 웹 서버 사이의 표준 인터페이스이다. WSGI는 웹 서버와 웹 애플리케이션 프레임워크 사이의 중개 역할을 하며, 서로 다른 웹 서버와 웹 애플리케이션을 결합하여 상호작용할 수 있도록 표준화된 방법을 제공한다. 

이를 이용해 특정 웹 서버나 프레임워크에 종속되지 않고, 표준 인터페이스를 통해 다양한 환경에서 웹 애플리케이션을 실행하고 배포할 수 있다.

728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.