HTTP와 HTTPS의 속도 차이는?

HTTPS, HTTP/2로 더 빠른 워드프레스 사이트 만들기. 아마 제목에서 일단 HTTPS를 보시고, 보안 서버를 얼른 떠올리실 겁니다. 보안 서버가 왜 속도 개선과 상관이 있을까요? HTTP/2는 어떻게 속도 개선에 도움을 주는 걸까요?

일단 먼저 두 개의 화면을 보고 시작하겠습니다. 화면의 출처는 www.httpvshttps.com이라는 사이트입니다. Let’s Encrypt에서 제공하는 http와 https의 속도 비교 사이트입니다. 프로토콜만 달리 해서 360개의 서로 다른 이미지(총 0.62MB이니 크기가 커서 느려지는 것은 아닙니다.)를 불러오는데 얼마나 걸리는지를 테스트하는 것입니다. 직접 위 링크를 클릭하셔서 테스트해보셔도 좋습니다. 일단, 아래 두 화면의 상단 우측의 숫자(로딩 시간)을 확인해 보시기 바랍니다.

HTTPS(HTTP/2)의 파일 전송 속도

 

HTTP(HTTP/1.1)의 파일 전송 속도

 

 

첫번째는 HTTPS 정확히는 HTTP/2와 HTTPS를 사용해 전송한 경우입니다. 1.431초가 걸렸습니다. 두번째는 HTTP 정확히 말해 현재 사용하는 HTTP/1.1을 사용한 전송 결과입니다. 무려 16.124초가 걸렸습니다. HTTP의 참패입니다. 무려 851%나 느립니다. HTTPS는 암호화 과정을 거치는데, 그럼 더 느려질 것 같으면서도 왜 더 빠른 결과가 나올까요?

HTTPS, HTTP/2가 빠른 이유

그렇다면, 암호화를 하는 과정을 더 거치는데도 불구하고, HTTPS, HTTP/2가 왜 HTTP보다 빠른 걸까요? 일단, HTTP/2의 기본적인 특징은 다음과 같습니다.

  • 멀티플렉싱
  • 헤더 압축
  • 서버 푸시
  • 리소스 우선순위 선정

 

데이터를 주고 받는 방식이 완전히 달라졌습니다. 우선 멀티플렉싱에 대해 이야기해 봅니다. HTTP는 기본적으로 한 번에 한 가지를 요청하고, 요청에 답이 오면 그 다음 요청을 보냅니다. 위의 테스트 사이트를 직접 방문해 보셨나요? HTTP인 경우, 이미지의 녹색 불이 하나씩 켜지는 것을 보셨을 겁니다. (순서는 상관이 없습니다.) 하나가 끝나야 다음 전송을 받을 수 있는 겁니다. 물론 인터넷이 처음 사용되기 시작할 무렵엔 회선 속도가 워낙 느려서 이런 방식에 아무 문제가 없었습니다. 그러나 이제는 인터넷 회선의 속도도 빨라졌습니다. 웹페이지 안에 스타일 시트, 자바스크립트, 수많은 이미지등 많은 파일이 전송되는 시대입니다. 이런 상황에서는 파일을 하나씩 순서대로 다운받다 보면 시간이 오래 걸릴 수 밖에 없습니다. 마치 코스 요리를 먹듯 하나씩 하나씩 먹는 것을 상상해 보시면 되겠습니다.

HTTP/2는 순차적이 아니라 동시에 요청을 보내고, 동시에 여러 채널로 다운로드를 하는 것입니다. 따라서, 순식간에 필요한 자료가 거의 동시에 전달이 됩니다. 때로는 요청이 가기도 전에 웹페이지에 포함된 모든 파일을 서버에서 알아서 먼저 보내주는 기술도 있습니다. 바로 서버 푸시입니다. 한 번에 한상 차림을 해서 상채 들어다 주는 것을 상상해 보세요.

헤더 압축은 기존 HTTP/1.1헤더 사이즈의 1/3로 압축해서 전송해 속도를 향상시키는 기술입니다. 리소스 우선순위 역시 중요한데, 현재 대부분의 사이트들은 하나의 페이지를 표현하기 위해 수십개의 파일들이 사용됩니다. 그중 CSS, JS파일도 적지 않습니다. HTML과 포함된 이미지 등 리소스가 다 전송받은 후에도 그것을 표시(렌더링)하는데 필요한 CSS나 JS가 더 늦게 도착한다면 문서의 렌더링이 지연됩니다. 중요한 CSS나 JS 파일을 지정해 먼저 보내고, 덜 중요한 부분이나 페이지 후반에 사용되는 리소스등은 나중에 보내는 식으로 우선 순위를 설정하는 것 역시 HTTP/2의 중요한 부분입니다.

 

HTTP/2와 HTTPS는 같이 쓴다?

그러면, 그냥 일반 전송에서 다 HTTP/2를 쓰면 되지 않나요? 왜 꼭 HTTPS와 같이 쓰는 건가요? 현재 아래 도표에 나오듯이 대부분의 브라우저가 HTTP/2를 지원합니다. 그러나, 조건이 있습니다.

 

출처 : http://caniuse.com/#search=http%2F2

 

브라우저들 거의가 공통적으로 각주 2번으로 표시된 HTTP2 over TLS(https)를 지원합니다. 즉, 현재 상황으로는 HTTP/2는 HTTPS로 보안 서버가 구축된 홈페이지에서만 바로 이것이 HTTP보다 HTTPS가 빠르다고 말하는 이유가 여기에 있습니다.

물론, 브라우저만 HTTPS, HTTP/2를 지원한다고 해서 되는 것이 아닙니다. 상대방인 서버에서도 이 프로토콜을 지원해야 합니다. 내 홈페이지가 있는 서버가, 내 홈페이지가 HTTPS로 접속되고 있지 않다면, 당연히 HTTP/2가 아닙니다. 여전히 느린 HTTP/1.1을 사용하고 있는 것입니다. 보안 서버를 구축해서 HTTPS를 쓰고 있습니까? 그럼, HTTP/2를 지원하고 있는지 여부를 https://tools.keycdn.com/http2-test사이트에서 직접 확인해 볼 수 있습니다. 서버가 지원하지 않는다면, HTTPS를 쓰고 있다 하더라도 여전히 느린 HTTP/1.1로 통신하고 있는 것입니다.

 

HTTPS, HTTP/2로 더 빠른 워드프레스 사이트 만들기

이제 위에서 설명한 방법으로 더 빠른 워드프레스 사이트를 만드는 방법은 정리해 보겠습니다.

  1. HTTP/2를 지원하는 웹호스팅을 이용한다.
  2. HTTPS 보안 서버를 구축한다.

이렇게 만들어진 사이트가 제대로 작동하는지 확인하려면, Keycdn.com의 테스트 사이트에 자기 도메인을 입력해 보면 됩니다. 코드웨이브의 홈페이지를 테스트해 보겠습니다. 아래와 같이 HTTP/2.0이 제대로 지원되고, ALPN 기능도 잘 동작하고 있음이 보입니다.

코드웨이브 홈페이지는 HTTP/2, ALPN, HTTPS를 지원합니다.

 

이제, 점점 더 많은 사이트가 HTTP/2로 더 빠른 사용자 경험을 제공하고 있습니다. 우리 홈페이지는 어떤가요? 워드프레스 홈페이지는 더더욱 서버 최적화에 따라 속도가 차이가 납니다. HTTP/2, HTTPS를 사용해서 더욱 쾌적하고 빠른 워드프레스 홈페이지를 만들고 싶지 않으세요?

보안 서버를 구축하지 않으면 벌금을 낸다는데, 보안 서버는 뭐고 어떻게 구축하나요? “보안 서버 구축(HTTPS/SSL) 소개” 포스트에서 확인하세요.

 

마이크로프레스는 워드프레스에 최적화된 NGINX 전용 서버로 HTTP/2, HTTPS를 지원하고 있습니다. 또, 무료로 보안 서버까지 구축해 드리고 있습니다. 마이크로프레스의 워드프레스 전용 호스팅에 대해 알아보세요!