웹 개발의 발전 과정
Intro
지난 게시글에서 클라이언트의 요청 진행 과정과 서버의 응답이 네트워크를 통해 어떻게 클라이언트로 도달하는지에 대해 알아봤다.
그러면 다음 주제는 자연스럽게 서버에서 전달 받은 HTML 문서
를 브라우저가 어떻게 그려내는지(rendering
)일 것이다.
하지만 그전에, 클라이언트에게 전달되는 콘텐츠(HTML
, CSS
, JS
)가 어떤 과정을 거쳐 현재의 모습으로 발전해 왔는지 그 역사를 먼저 알아보자.
인터넷의 등장과 웹 브라우저의 출현
웹과 인터넷을 구분하고 해당 주제를 시작하자.
인터넷: 전 세계 컴퓨터들을 연결하는 물리적인 네트워크 인프라(통신 프로토콜(TCP/IP)을 사용하여 서로 정보를 주고받을 수 있게 연결)
웹: 인터넷을 기반으로 HTML, HTTP, URL 등의 기술을 사용하여 정보를 공유하는 시스템(인터넷 위에서 동작하는 시스템)
팀 버너스 리는 1990년 최초의 웹 서버
인 CERN httpd
, 웹 브라우저
인 WorldWideWeb
, HTML 1.0
을 개발, 1991년 8월 6일, 세계 최초의 웹사이트인 http://info.cern.ch 공개한다.
그 후, 1993년에 웹의 소스 코드를 공개하고, 1994년에는 W3C(World Wide Consortium - HTML, CSS, XML 등 웹 기술의 표준을 개발하고 관리)재단을 창설한다.
이렇게 웹 서비스의 시대가 개막 되었다!
하지만 이 시점에서의 컨텐츠들은 정적 웹페이지(static)
로 단순한 정보제공에 가까웠다.
정적 웹페이지
는 서버에 미리 저장된 HTML, CSS, JavaScript 등의 파일로 구성(이 시점에서는 JS 없었음)
모든 사용자에게 동일한 콘텐츠 제공(사용자의 요청이나 상태에 따라 콘텐츠가 달라지지 않음)
동적 웹페이지와 서버 사이드 렌더링의 등장
사실 위의 스태틱 페이지들은 굉장히 한정적인 목적에서만 적합하다.(변할 일이 없는 정보성 페이지...)
사용자의 요청에 따라 다른 내용을 보여주려면 사전에 해당하는 케이스들의 페이지를 전부 만들어야 하며 사용자가 입력한 값들은 반영하기 어려울 것이다.
이러한 상황에서 등장한게 CGI(Common Gateway Interface)
이다.
- 웹 서버는 요청 URL을 분석하여 해당 요청이 CGI 프로그램에 대한 것인지 확인
- 맞다면 프로세스를 생성 후, HTTP 요청의 정보를 환경 변수에 세팅 및 POST 요청의 경우, body CGI 프로그램의 표준 입력으로 전달
- CGI 프로그램은 처리 결과를
HTTP response
로 출력