컴퓨터 과학 (Computer Science)/WEB, Computer Networking

웹 서버(Web Server)란 무엇인가?

redsiwon 2023. 5. 30. 15:43

웹 서버를 웹과 서버로 나누어, 단어의 의미를 중심으로 웹 서버가 무엇인지 살펴보겠습니다.

1. 웹이란 무엇인가

웹은 월드 와이드 웹(WWW, World-Wide Web)의 줄임말로, 1989년 유럽입자물리연구소의 컴퓨터 과학자 팀 버너스리에 의해서 발명되었는데, 과학자들 상호간의 신속한 정보교환을 통한 공동연구를 위한 목적으로 발명되었다고 합니다. (위키피디아)

 

웹이 인터넷과 동의어로 사용되는 경우가 빈번한데, 엄밀히 말하면 다릅니다. 어떻게 다를까요?

 

1.1. 웹 vs 인터넷

인터넷: 전세계적으로 연결된 컴퓨터 네트워크의 집합체

그림 1. Internet vs Web

웹과 인터넷의 차이를 한 문장으로 설명해보자면, 인터넷이라는 물리적 연결 구조를 이용해서 이라는 전세계적인 정보 공유 서비스 플랫폼이 형성되었다고 보시면 됩니다.

 

웹은 인터넷을 사용하지만 인터넷이라고 다 웹인 것은 아닙니다. 웹이 아닌 인터넷 서비스의 예시로는 FTP(파일 송수신), SMTP(이메일 송수신) 등을 비롯하여 무수히 많습니다.

 

1.2. 컴퓨터 네트워크

컴퓨터 네트워크: 컴퓨터들의 연결망

 

컴퓨터 네트워크는 종단 시스템(또는 호스트)과, 종단 시스템들 간의 통신을 지원하는 통신 링크 및 패킷 스위치들로 이루어져있습니다. 종단 시스템에 포함되는 것은 우리가 사용하는 노트북이나 스마트폰, 자동차, IoT 장치, 게임 서버, 웹 서버 등으로서 이들이 실제적인 응용(애플리케이션) 처리를 담당합니다.

 

- 통신 링크: 데이터 전송 물리 매체 (ex. 광케이블, 랜선)

- 패킷 스위치: 패킷이 목적지 종단 시스템까지 바르게 전달되도록 적절한 출력 통신 링크를 결정하여 전달해주는 입력 통신 링크의 일종 (ex. 라우터(공유기), LAN 카드)

 

우리가 인터넷을 통해 전송하는 데이터는 크기에 따라 여러 조각(세그먼트 segment)으로 나뉘고, 헤더(header)가 붙어 하나의 패킷이 됩니다. 패킷의 전달을 위해 사용되는 통신 링크와 패킷 스위치를 교통 수단에 비유해서 표현해보자면 통신 링크는 고속도로로, 패킷 스위치는 톨게이트 혹은 교차로로 비유할 수 있습니다. 통신 링크와 패킷 스위치는 응용과 관련된 어떤 작업도 수행하지 않고 그저 규칙에 따라 패킷들을 목적지로 전달해주는 역할만을 맡습니다.

 

패킷들은 목적지에서 분해 및 조립되어 다시 원래의 데이터로 변환됩니다.

그림2. 종단 시스템 간 상호작용, 접속 네트워크 (출처: 컴퓨터 네트워킹: 하향식 접근 Computer Networking: A Top-down Approach)

위의 그림과 같이 다양한 컴퓨터 네트워크들이 전세계적으로 연결된 집합체를 인터넷이라고 합니다. 각 네트워크는 다른 네트워크와 통신을 위해서 상위 패킷 스위치에 종속됩니다. 패킷 스위치가 길을 안 열어주면 통신을 할 수가 없습니다. 고속도로 톨게이트 문이 닫혀있다고 보시면 됩니다. 그리고 특히 인터넷 접속을 중재하는 역할을 맡고 있는 패킷 스위치를 갖는 서비스 제공 시스템 및 서비스 제공자를 ISP(Internet Service Provider)라고 합니다.

 

1.3. 서버란 무엇인가 (클라이언트-서버 모델)

그림 3. 클라이언트-서버 모델

- 서버: 네트워크에 연결되어 특정 서비스를 제공하는 컴퓨터.

           서버의 예시로는 파일 서버, 메일 서버, 데이터베이스 서버, 웹 서버 등 서비스 종류에 따라 다양합니다.

- 클라이언트: 네트워크에 연결되어 서버에게 서비스를 요청하는 컴퓨터

 

1.4. 웹의 역할과 기능

  은 웹 서버와 웹 브라우저 간의 상호작용을 통해 동작합니다. 웹 서버는 웹 페이지와 다른 리소스를 호스팅하고 제공하며, 웹 브라우저는 사용자가 웹 페이지를 검색, 보기 및 상호작용할 수 있는 클라이언트 소프트웨어입니다. 크롬, 사파리, 파이어폭스, 웨일 등 우리가 흔히 인터넷에 접속할 때 사용하는 프로그램들이 바로 웹 브라우저들입니다. 그리고 우리가 웹 브라우저를 켜서 구글이나 네이버에 검색했을 때 나오는 여러 링크들 중 하나를 누르거나 직접 주소창에 주소(URL)을 입력하였을 때 우리 웹 브라우저의 화면이 바뀌는데, 내부적으로 웹 브라우저가 웹 서버에게 요청을 하여 전달된 정보들이 웹 브라우저에 의해서 가공되어서 표시되는 것입니다.

 

  웹인터넷상의 정보를 하이퍼텍스트 방식과 멀티미디어 환경에서 검색할 수 있게 해주는 정보검색 시스템입니다. 하이퍼텍스트(Hypertext: 초본문, 하이퍼본문)는 참조(하이퍼링크)를 통해 독자가 한 문서에서 다른 문서로 즉시 접근할 수 있는 텍스트입니다. 이를 통해 사용자는 웹 페이지에서 다른 페이지로 쉽게 이동하고, 관련 정보에 접근할 수 있습니다.

 

웹의 3대 구성요소

  1. URL: 자원 위치 지정 방법  (ex. www.tistory.com)
  2. HTTP: 자원 공유(통신) 방법 (ex. https://www.tistory.com)
  3. HTML: 그 자체로 자원이자 다른 자원을 참조하는 하이퍼텍스트를 포함하는 문서, 또는 그러한 문서를 표현하는 언어

 

웹 브라우저가 인터넷에 연결 가능한 웹서버의 URL로 HTTP의 규약에 따라 요청을 하면 웹서버는 적절한 서비스를 제공합니다. 여러 서비스가 있지만 대표적인 서비스는 요청한 자원을 전달해주는 것인데, HTML 및 부수적인 파일 및 미디어 자료들(CSS, Javascript, 이미지, 비디오, 기타 등등)을 전달해줍니다.

 

뭔가 용어들이 너무 많고 복잡한 것 같다면 하나만 기억해주세요. 웹의 본질은 분명합니다. 정보 공유입니다. 다만 어떤 정보를, 어떻게 가공하여, 어떤 통신 방식으로 공유할 것인지 등등의 부수적인 요소들이 덧붙여진 것뿐입니다. 이러한 관점에서 웹 서버는 결국 정보를 제공해주는 역할을 맡은 컴퓨터로 정의할 수 있습니다(당연히 더 나아가 가공/처리 등의 서비스도 수행할 수 있음).