웹 개발

웹 브라우저와 웹 서버의 상호작용 1

younghlee 2025. 5. 18. 21:38

웹 사이트

웹사이트는 인터넷 상에서 정보를 제공하는 하나의 웹 서버(Web Server)입니다. 사용자는 이를 웹 브라우저(Web Browser)를 통해 접근하며, 브라우저는 정보를 받아 화면에 표시하는 웹 클라이언트(Web Client) 역할을 수행합니다.

 

우리가 정보를 찾기 위해 크롬이나 파이어폭스를 실행해 검색하면, 브라우저는 서버에 요청(request)을 보내고, 서버는 이에 대한 응답(response)을 제공합니다. 이러한 구조를 서버-클라이언트 모델이라 하며, 웹 환경에서 기본이 되는 개념입니다.

 

서버-클라이언트 구조

 

웹 브라우저와 웹 서버는 HTTP(HyperText Transfer Protocol)라는 규칙을 통해 통신합니다. 이 프로토콜은 하이퍼텍스트를 주고받기 위한 약속입니다.

우리가 웹브라우저 주소창에 http://yoho.id을 입력하고 엔터를 치면, 브라우저는 해당 주소의 웹서버에 HTTP 요청을 보내고, 서버는 HTML로 된 웹페이지를 응답으로 보내주게 됩니다.

 

클라이언트들은 보통 자신의 자원을 서버와 공유하지 않고, 서버만이 리소스를 제공하는 역할을 합니다. 이러한 구조 덕분에 한 대의 서버가 동시에 다수의 사용자 요청을 처리할 수 있고, 클라이언트는 필요할 때마다 서버에 요청하여 서비스를 제공받을 수 있습니다.


웹의 기본 동작 원리

 

웹 통신의 기본은 요청(Request)과 응답(Response)입니다. 브라우저(클라이언트)가 서버에 요청 메시지를 보내면, 서버는 이를 처리한 뒤 응답 메시지를 돌려줍니다.

 

각 요청은 독립적으로 처리되며, HTTP는 무상태(stateless) 프로토콜이기 때문에 서버는 이전 요청의 상태를 기억하지 않습니다. 사용자가 웹페이지에서 링크를 클릭할 때마다 브라우저는 새로운 요청을 보내고, 서버는 해당 페이지 정보를 응답하는 방식입니다.

HTTP 요청(Request)HTTP 응답(Response)

 

클라이언트와 서버는 다음과 같은 형식으로 메시지를 주고받습니다:

  • 요청(Request): URL, 메서드(GET/POST 등), 헤더(부가 정보), 본문(body) 등
  • 응답(Response): 상태 코드(예: 200 OK), 헤더(콘텐츠 타입 등), 본문(HTML, JSON 등)

브라우저는 응답받은 HTML 등을 렌더링(rendering)하여 화면에 표시합니다.

HTTPS(HyperText Transfer Protocol Secure)는 HTTP에 보안 계층(SSL/TLS)이 추가된 버전으로, 데이터가 암호화되어 보다 안전하게 통신할 수 있습니다. 본 튜토리얼의 후반부에서 HTTPS 환경 구축에 대해서도 다룰 예정입니다.

서버와 클라이언트 역할의 이해

서버와 클라이언트의 역할 정리

  • 서버(Server): 정보를 제공하는 시스템
  • 클라이언트(Client): 정보를 요청하고 이용하는 시스템

하나의 서버는 여러 클라이언트에 동시에 서비스를 제공할 수 있으며, 클라이언트는 필요에 따라 여러 서버에 요청을 보낼 수 있습니다.

  • 이메일 프로그램은 메일 서버와 통신
  • 웹 브라우저는 웹 서버와 통신
  • 게임 클라이언트는 게임 서버와 통신
무엇보다 중요한 점은, 요청은 항상 클라이언트에서 시작된다는 것입니다. 서버는 요청이 오기 전까지는 기다리고 있다가, 요청이 오면 그에 대한 응답을 제공합니다. 이러한 구조 때문에 HTTP는 클라이언트-서버 프로토콜로 분류됩니다.

다음에 다룰 사항

 

웹 서비스(Web Service)를 제공하려면 단순히 웹 서버 프로그램만 있다면 그 프로그램을 실행할 컴퓨터(하드웨어)가 필요합니다.

 

예를 들어 우리가 nginx Apache 같은 웹 서버 소프트웨어를 설치했다고 해도, 이를 구동할 물리 또는 가상 머신이 없으면 서비스가 불가능합니다. 따라서 다음 장에서는 이러한 물리 서버를 운영하기 위한 운영체제와 환경에 대해 알아보겠습니다. 감사합니다.