학습 | 웹서버(Webserver)

웹서버란 무엇일까

서브젝트 문서를 한 문장으로 요약한다면 '웹서버를 만들라'는 것입니다. 그렇다면 웹서버란 무엇일까요? 위키에는 아래와 같이 정의되어 있어요.

웹 서버(Web Server)는 HTTP를 통해 웹 브라우저에서 요청하는 HTML 문서나 오브젝트(이미지 파일 등)을 전송해주는 서비스 프로그램을 말한다. 웹 서버의 주된 기능은 웹 페이지를 클라이언트로 전달하는 것이다. 주로 그림, CSS, 자바스크립트를 포함한 HTML 문서가 클라이언트로 전달된다.

어렵게 생각할 필요가 없어요. 사용자적 관점에서 보면, 우리는 키보드나 마우스와 같은 입력 장치를 통해 저 멀리 어딘가에 있는 컴퓨터에게 요청을 보냅니다. "네가 가지고 있는 특정 리소스를 내가 원하는 방식으로 처리하고, 그 결과를 나에게 돌려달라"고 말이죠.

이 때 요청하는 쪽이 클라이언트, 요청을 처리하고 응답하는 쪽이 서버가 되는 거에요. 가장 대표적인 클라이언트는 브라우저로, 사용자를 대신해서 요청을 서버에게 보내고 그 처리결과를 화면에 띄워주는 역할을 합니다. 이 때 어떤 문자열 형식으로 서버에 요청을 보낼 것인가, 클라이언트에게 응답을 보낼 것인가에 대한 형식적 약속(프로토콜)이 바로 HTTP인 것이고요.

그러니까 결국 웹서버를 만들라는 얘기는, 클라이언트가 리퀘스트를 보내오면 보유하고 있는 특정 리소스를 클라이언트가 요청하는 방식대로 처리하고 그 결과를 돌려주는 프로그램을 만들라는 얘기입니다. 멘토님이 "프로그래밍의 기본은 입력, 처리, 출력이다"라는 얘기를 하신 적이 있는데요. 웹서버 역시 프로그램일 뿐이고, 알고 보면 요청(입력), 처리, 응답(출력)이 전부입니다.

서버(Server)란 Serve를 하는 주체라는 뜻인데, Serve는 '타인의 욕구를 채워주는 일'을 의미합니다. 라틴어 servire에서 왔는데 service, servant도 여기에서 파생되었어요. 그러니까 서버라는 것은 클라이언트의 니즈를 채워주는 일을 하고, 그 중에서도 웹서버는 HTTP를 따르는 Request들을 정해진 방식에 따라 처리하고 Response를 보내는 일을 하는 거지요.

Last updated