9.1 HTTP 를 기본으로 하는 프로토콜

HTTP 의 규격이 만들어졌을 무렵에는 주로 HTML(Hypertext Markup Language) 로 작성된 문서를 전송하기 위한 프로토콜로 HTTP(HyperText Transfer Protocol) 를 생각했었다. 그리고 시대를 거치면서 웹의 용도는 크게 변화하고 있다. 쇼핑 사이트나 SNS(Social Networking Service), 기업이나 조직 내의 각종 관리 툴 등 그 용도는 다방면에 이른다.

그것들이 추구하는 기능은 웹 어플리케이션이나 스크립트 등을 구사해서 만들 수 있지만, 기능이 충분하다고 하더라도 결코 효율적인 것은 아니다. HTTP 라는 프로토콜의 제한이나 한계가 있기 때문이다.

HTTP 의 기능이 부족하다고 한다면 그것을 보완하는 전혀 새로운 프로토콜을 만들 수도 있지만, 이미 웹 브라우저라는 환경이 널리 퍼진 지금 HTTP 라는 프로토콜을 무시할 수 없다. 그래서 HTTP 를 기반으로 여기에 추가하는 형태의 새로운 프로토콜들이 구현되었다.

9.2 HTTP 의 병목 현상을 해소하는 SPDY

Google 이 2010년에 발표한 SPDY(SPeeDY: 스피디) 는 HTTP 의 병목 현상을 해소하고 웹 페이지 로딩 시간을 50% 단축한다는 목표를 세우고 개발되었다.

SPDY - The Chromium Projects

http://www.chromium.org/spdy/

9.2.1 HTTP 의 병목 현상

8CED39A8-5794-4808-8C1E-A02048BE5B36.jpeg

페이스북이나 트위터 등의 SNS 는 많은 사람들이 작성한 정보를 거의 실시간으로 보는 것이 묘미 중 하나이다. 수백만명, 수천만명의 유저가 메시지 등의 정보를 작성하면 웹 사이트에 그 정보들이 추가되면서 단시간에 대량의 갱신 정보가 발생한다.

이렇게 갱신된 정보를 가능한 빨리 실시간으로 표시하기 위해서는 서버상의 정보가 갱신되었을 때, 그것을 클라이언트의 화면에 반영할 필요가 있다. 단순한 것처럼 생각할 수 있지만 HTTP 에서는 이 처리를 제대로 할 수 없다.

HTTP 에서는 서버의 정보가 갱신되었는지 아닌지를 알기 위해서 클라이언트가 항상 서버 측에 확인해야 한다. 만약, 서버 상의 정보가 갱신되지 않은 경우에는 불필요한 통신이 발생한다. 현재 웹에 요구되는 방법을 사용하려 한다면 다음과 같은 HTTP 의 사양이 병목 현상이 된다.

Ajax 에 의한 해결 방법

745276B0-82DE-4B59-8D3E-FC92E9539DD5.jpeg