SPDY란 무엇인가요?

SPDY(‘스피디’로 발음)는 Google이 개발하여 2009년에 공개한 HTTP 기반 통신 프로토콜입니다. 주요 목적은 점점 더 풍부해지는 웹 콘텐츠에 대응할 수 있도록 웹 페이지 로딩 속도를 높이는 것이었습니다. SPDY는 HTTP/1.1에 정의된 메서드나 헤더를 변경하는 대신, 성능 목표를 달성하기 위해 세션 프로토콜을 재정의했습니다.

SPDY의 가장 주목할 만한 특징은 하나의 TCP 연결을 통해 여러 통신을 동시에 처리할 수 있다는 점으로, 이를 통해 연결 리소스를 최적화하고 응답 시간을 단축합니다. SPDY에서는 일련의 요청 및 응답 교환을 스트림이라고 합니다. TLS 연결 위에 세션 계층을 추가하면 하나의 SPDY 연결 내에서 여러 스트림을 열린 상태로 유지할 수 있어 동시 통신이 가능합니다.

스트림은 클라이언트뿐만 아니라 서버에서도 시작할 수 있어 서버 푸시 기능을 지원합니다. 이를 통해 서버는 요청을 기다리지 않고 클라이언트에 콘텐츠를 선제적으로 전송할 수 있으며, 콘텐츠를 미리 로드하여 응답 시간을 단축할 수 있습니다. 또한 SPDY는 바이너리 인코딩과 헤더 압축을 사용해 전송되는 데이터의 크기를 줄임으로써 속도를 더욱 향상시킵니다.

SPDY의 또 다른 중요한 특징은 TLS와 통합되어 프로토콜을 자동으로 선택할 수 있다는 점입니다. 예를 들어 SPDY를 지원하는 서버가 SPDY와 호환되지 않는 브라우저와 통신할 경우, 서버는 자동으로 HTTP로 전환합니다. 메서드와 헤더 같은 애플리케이션 계층의 의미 체계는 그대로 유지되므로 웹 애플리케이션을 수정할 필요가 없으며, SPDY로 전환하는 동안에도 원활한 호환성이 보장됩니다. 다만 SPDY는 TLS와의 통합을 전제로 하므로 사용하려면 반드시 HTTPS를 사용해야 합니다.

SPDY의 기능은 2015년 5월 IETF가 표준화하여 발표한 HTTP/2 사양에 통합되었습니다. 현재 많은 웹 브라우저가 HTTP/2를 지원합니다. SPDY를 개발한 Google은 2016년 2월 11일 Chrome의 SPDY 지원을 2016년 5월 15일에 종료한다고 발표했습니다. SPDY는 웹 브라우저에서 폭넓게 지원되었고 Google을 비롯한 주요 웹사이트에 구현되었지만, 이제 현대 웹 기술의 초점은 HTTP/2로의 전환에 맞춰져 있습니다.