인터넷을 기반으로 구현된 서비스 중 HTTP를 이용하여 정보를 공유하는 서비스를 웹이라 합니다. 여기서 정보를 제공하는 주체를 웹 서버 (Web Server), 정보를 받는 이용자를 웹 클라이언트 (Web Client) 라고 합니다.
식당에서 음식을 서빙하는 사람 (Server)과 음식을 주문하는 고객 (Client)의 관계로 생각하시면 됩니다. 여기서, HTTP란 웹상에서 서로 통신을 하기 위해 정해둔 일종의 규칙입니다.
웹의 발전과 웹 보안의 중요성
초기 웹 서비스는 저장된 문서의 내용을 출력해 이용자에게 제공하는 간단한 서비스였습니다. 그런데 웹과 관련된 기술이 발전하면서 이제는 금융, 쇼핑, 협업 등 다양한 분야에서 이용자에게 편의를 주는 복잡한 서비스로 진화했습니다. 과거에는 단순히 정보를 보여주는 것에서 그쳤다면, 현재는 정보를 검색하고 직접 제품을 구매할 수 있도록 변화하였습니다. 이러한 웹의 발전은 우리의 일상을 많은 부분에서 바꿔놓았으며, 오프라인에서 이뤄지던 많은 상호작용이 현재는 디지털 형태로 변환되어 웹 서비스로 구현되고 있습니다.
한편, 웹에서 처리하는 정보 자산들이 많아짐에 따라 이들을 안전하게 보관하고 처리해야 할 필요성도 함께 증가하였습니다. 예를 들어, 고객이 물건을 구매하는 과정에서는 고객의 주소, 카드 번호 등의 정보들이 웹을 통해 서버로 전달됩니다. 만약 이 정보들이 안전하게 보호되지 않는다면 고객에게 심각한 피해를 야기할 수 있습니다. 그래서 웹을 통한 정보의 교환 과정에서 이러한 민감한 정보들이 유출되거나 악용되지 않도록 보호하는 웹 보안의 중요성이 대두하고 있습니다.
웹 서비스, 프론트엔드와 백엔드
앞서 말한 것과 같이 웹 서비스는 다양한 기능을 수행하는 형태로 발전했습니다. 이전의 웹 서비스가 이용자가 요청하는 정보를 제공하기만 하는 수동적인 형태의 서비스였다면, 현재는 이용자의 요청을 해석하고 가공하여 필요한 정보와 기능을 제공하는 능동형 서비스에 가깝습니다. 예를 들어, 구글과 같은 검색 서비스는 이용자가 “검색어”라는 형태로 자신이 원하는 정보를 추상화해서 전달하면, 구글이 이를 해석하고 가공하여 필요한 정보를 제시합니다.
이런 서비스 구조에서, 이용자의 요청을 받는 부분을 프론트엔드 (Front-end), 요청을 처리하는 부분을 백엔드 (Back-end)라고 부릅니다. 호텔 프론트에 이런저런 서비스를 요청하면 뒤의 공간에서 고객 모르게 복잡한 일들이 벌어지는 것과 비슷합니다.
프론트엔드는 이용자에게 직접 보여지는 부분으로, 웹 리소스 (Web Resource)라는 것으로 구성됩니다. 페이지가 보여주고 있는 정보들은 모두 웹 리소스에 명시되어 있습니다. 페이지에 담기는 글, 글자들의 색깔과 모양, 배경 색상, 이미지의 크기나 투명도 등이 관련 언어로 적혀있습니다.