HTTP / 2 소개

개요

HTTP / 2는 최신 버전입니다. 하이퍼 텍스트 전송 프로토콜 또는 HTTP [01]브라우저에서 웹 서버와 통신하는 데 사용됩니다. 구형 SPDY에서 파생 [02] 프로토콜 인 HTTP / 2는 1.1 년 RFC 2068에서 HTTP / 1997의 표준화 이후 HTTP의 첫 번째 버전입니다.

IETF (Internet Engineering Task Force) HTTP 작업 그룹에서 개발했습니다. httpbis ( "bis"는 "두 번"을 의미 함), RFC 7540으로 게시 됨 [03] 월 2015있다.

HTTP / 2 채택

HTTP / 2는 공식 출판 이후 웹 사이트 운영에 점점 더 많이 채택되고 있습니다. 온라인 설문 조사 서비스 W3Techs [04] 2017 년 2018 월부터 2 년 16 월까지 HTTP / 30 지원은 모니터링되는 모든 웹 사이트의 XNUMX %에서 XNUMX %로 증가했습니다.

또한 주요 브라우저 (예 : Chrome, Firefox, Edge 등)는 이미 HTTP / 2를 완벽하게 지원합니다. [05]. (일부는 HTTP / 2가 표준으로 채택되기 전에 실험적인 구현을 개발했습니다.)

이러한 광범위한 채택은 HTTP / 2가 사실상 웹의 통신 프로토콜이 될 가능성을 가지고 있음을 의미합니다.

HTTP / 2의 동기

Httpbis'헌장 [06] HTTP / 1.1의 동기로 개선 될 수있는 HTTP / 2의 몇 가지 구성 요소를 언급합니다. 그러나 그룹의 주요 목표는 최종 사용자가인지하는 지연 시간을 줄이는 것이 었습니다.

이것을하기 위해, httpbis 헤더 압축 및 공격적인 프리 페칭 기술 (예 : 서버 푸시)을 통한 대역폭 오버 헤드 최소화를 고려하면서 동시에 연결 혼잡 및 HoL (Head-of-Line) 차단 문제와 같은 알려진 성능 문제를 체계적으로 해결하려고합니다. [07].

또한 HTTP / 2는 이전 버전과 호환되어야하므로 HTTP / 1.1에있는 동일한 메소드 동사, 상태 코드, URI 및 (대부분) 헤더 필드를 사용해야했습니다. 또한 HTTP / 2는 데스크톱 및 모바일 웹 브라우저, 프로그래밍 인터페이스, 프록시 및 방화벽과 같은 일반적인 HTTP 사용 사례를 지원하도록 설계해야했습니다.

이 호환성을 유지하기 위해 작업 그룹은 클라이언트와 서버가 HTTP / 1.1, HTTP / 2 또는 비 HTTP 프로토콜 중에서 선택할 수있는 프로토콜 협상 메커니즘을 개발했습니다.

그렇다면 HTTP / 2의 새로운 기능은 무엇입니까?

HTTP / 2는 여전히 HTTP / 1.1에서 사용 된 것과 동일한 URI 스킴과 포트 번호를 사용합니다 (예 : http URI 및 포트 443 https URI))이지만 많은 작업이 다르게 수행됩니다.

가장 근본적인 변화는 프레임 HTTP / 2의 기본 데이터 단위로.

HTTP / 1.1은 전통적으로 패킷 네트워크 데이터를 나타냅니다. 클라이언트는 메소드 동사를 사용하여 요청 패킷을 구성합니다 (예 : GET or POST), 연결을 설명하는 헤더 목록 및 애플리케이션 데이터가 포함 된 본문을 추가합니다.

요청 패킷을 수신하면 HTTP / 1.1 서버는 요청 된 정보가 포함 된 유사한 응답 패킷으로 응답합니다. 결과적으로 각 요청 및 응답주기에는 새로운 연결이 필요합니다.

반대로, HTTP / 2 클라이언트는 서버와 단일 네트워크 연결을 설정하여 모든 후속 네트워크 통신에 사용합니다. 헤더, 사용자 데이터, 오류 메시지 및 이러한 정보는 네트워크를 통해 전송되기 전에 프레임이라고하는 별개의 이진 데이터 구조로 압축됩니다.

이것은 작은 변화처럼 보이지만 중요한 영향을 미칩니다.

헤더 압축

프레임 사용의 큰 장점은 HTTP / 2 헤더가 HEADER 일반 압축 방법을 사용하여 압축 할 수있는 프레임. 헤더는 데이터 이전에 전송되어야하므로 헤더 압축은 HTTP / 2에 의해 부과되는 대역폭 오버 헤드를 줄일 수 있습니다.

헤더 압축은 다음 성능 향상 HTTP / 2 기능과 함께, 최소한의 네트워크 사용이 필요한 모바일 또는 사물 인터넷 (IOT) 애플리케이션에 특히 유용 할 수 있습니다.

스트림 및 멀티플렉싱

의미 적으로 관련된 프레임의 독립적 인 시퀀스를 흐름. 스트림은이를 생성 한 엔드 포인트 (예 : 클라이언트 또는 서버)에 의해 고유 한 식별자가 할당되므로 다른 엔드 포인트가이를 구별 할 수 있습니다.

엔드 포인트는 동일한 HTTP / 2 연결을 통해 여러 스트림의 프레임을 인터리브 할 수 있으므로 단일 네트워크 연결로 동시에 여러 개의 열린 스트림을 지원할 수 있습니다. 다중화 [08].

동일한 연결을 재사용하면 연결 혼잡 및 앞에서 언급 한 HoL 문제와 같은 문제가 완화되고 이전 HTTP 버전보다 더 나은 성능과 더 부드러운 사용자 경험이 제공됩니다.

스트림 의존성과 우선 순위

여러 개의 동시 스트림을 관리한다는 것은 일부 스트림이 다른 스트림보다 먼저 처리됨을 의미합니다. HTTP / 2를 통해 개발자 (또는 관리자)는이 기능을 사용하여이 동작을 미세 조정할 수 있습니다. 스트림 의존성.

스트림은 처리되기 전에 다른 스트림의 전체 전송에 의존 할 수 있습니다. 예를 들어, 유사한 컨텐츠에 대한 권장 사항 전에 웹 페이지의 기본 컨텐츠를로드해야하는 사이트에서 HTTP / 2를 사용하면 기본 컨텐츠 스트림에 따라 권장 사항 스트림을 작성할 수 있습니다.

HTTP / 2는 또한 지원합니다 스트림 우선 순위 지정. 즉, 각 스트림에 우선 순위를 할당하여 엔드 포인트가 스트림의 프레임을 처리하기 위해 리소스를 얼마나 긴급하게 할당해야하는지 제안 할 수 있습니다.

우선 순위 지정 및 스트림 종속성은 개발자와 웹 사이트 소유자가 사이트의 네트워크 사용을 최적화하는 데 도움이되며 사이트의 사용자 경험을 크게 향상시킬 수 있습니다.

서버 푸시

마지막으로 HTTP / 2는 "푸시"기능을 제공하여 웹 사이트의 성능을 향상시킬 수 있습니다. HTTP / 2 웹 서버는 클라이언트가 원래 요청한 것보다 더 많은 쿼리에 대한 데이터로 응답 할 수 있습니다. 이를 통해 서버는 브라우저가 첫 번째 응답을 검사 할 때까지 기다리지 않고 추가 요청주기의 오버 헤드없이 웹 브라우저가 페이지를 렌더링해야한다는 것을 알고있는 데이터를 제공 할 수 있습니다.

서버 푸시를 통해 개발자는 브라우저가 웹 사이트를 렌더링하는 데 필요한 요청 수를 완전히 제어 할 수 있습니다. 이 기능을 올바르게 사용하면 네트워크 오버 헤드를 최소화 할 수 있습니다.

당연히 푸시 기능을 잘못 사용하면 실제로 필요한 것보다 더 많은 대역폭이 낭비 될 수 있습니다. 이러한 이유로 HTTP / 2를 사용하면 클라이언트는 처음 연결을 협상 할 때 서버 푸시를 비활성화하도록 요청할 수 있습니다.

HTTP / 2 보안

이 시점까지 읽었다면 HTTP / 2 개발자가 성능 향상에 실제로 노력을 기울 였음을 분명히 알 수 있습니다. 그러나 HTTP / 2는 브라우저 사용자의 전반적인 보안을 향상시키는데도 도움이 될 수 있습니다.

보다 구체적으로 HTTP / 2는 HTTP URI (즉, 암호화 없음) 및 HTTPS URI (over TLS 암호화 된 채널). 표준 자체는 암호화 사용을 요구하지 않지만 모든 주요 브라우저 구현 (예 : Firefox [09]Chrome, Safari, Opera, IE, Edge)는 HTTP / 2 이상 지원 TLS.

실제로 브라우저는 암호화를 통해 일반 텍스트 HTTP / 2와 HTTP / 2를 구분합니다. TLS 두 가지 다른 프로토콜로. 암호화 된 HTTP / 2가 호출됩니다. h2 그리고 명확한 텍스트 h2c. 이 글을 쓰는 시점에서 주요 브라우저 중 어느 것도 지원하지 않습니다 h2c , 어느 의미 TLS HTTP / 2의 다른 장점을 활용하려면 웹 사이트에서 암호화가 필수입니다. 따라서 HTTP / 2가 기본 웹 네트워크 프로토콜이 될 때 아직 SSL /로 업그레이드하지 않은 기존 웹 사이트 소유자는TLS, 마침내 그렇게하도록 강하게 동기를 부여 할 것입니다.

결론

HTTP / 2의 광범위한 채택은 새롭고 향상된 웹을 가져옵니다. 더 빠르며 대역폭이 덜 필요하며 웹 사이트의 보안 유지에 도움이됩니다. 주류 채택은 전반적인 웹 사용자 경험을 더욱 부드럽고 안전하게 만듭니다.

오늘 인증서를 받고 미래에 우리와 함께하십시오.

참고자료

  1. HTTP 프로토콜
  2. SPDY 프로토콜
  3. HTTP / 2 사양
  4. W3Techs HTTP / 2 채택 설문 조사
  5. 브라우저에서 HTTP / 2 채택
  6. httpbis 전세
  7. HOL 차단
  8. 멀티플렉싱
  9. HTTP / 2의 Firefox

SSL.com 뉴스 레터 구독

SSL.com의 새로운 기사 및 업데이트를 놓치지 마십시오

최신 정보를 얻고 보안을 유지하세요

SSL.com 사이버 보안 분야의 글로벌 리더입니다. PKI 그리고 디지털 인증서. 최신 업계 뉴스, 팁, 제품 공지 사항을 받아보려면 등록하세요. SSL.com.

우리는 귀하의 피드백을 환영합니다

설문조사에 참여하여 최근 구매에 대한 의견을 알려주세요.