HTTP / 2 란 무엇이며 어떤 역할을합니까?



문제를 제거하기 위해 도구를 사용해보십시오

지난 20 년 동안 월드 와이드 웹은 극적으로 발전했습니다. 개선 된 모든 웹 기술에는 기술 한계에 도달 한 현재의 웹 기술 (HTTP)보다 통신 및 파일 전송을위한 더 빠르고 더 나은 솔루션과 프로토콜이 필요합니다.





HTTP / 2 란 무엇입니까?

HTTP / 2는 최신 버전의 Hypertext입니다. 전송 프로토콜 (HTTP) – World Wide Web에서 사용하는 기본 프로토콜 . 2015 년 2 월에 처음 승인되었습니다. 이는 원래 HTTP 이후 거의 20 년이 지난 것입니다. HTTP / 2는로드 시간을 줄이고 서버와 브라우저 간의 통신을 크게 향상시킵니다. 대부분의 브라우저는 이미 HTTP / 2를 추가했으며 사용자 관점에서 많은 것을 변경하지 않았습니다. 그것이 우리 중 많은 사람들이 아직 읽거나 듣지 못한 주된 이유입니다.



HTTP / 2의 기능은 무엇입니까?

HTTP의 후계자로서 HTTP / 2는 HTTP의 모든 특성을 개선하는 데 중점을 둡니다. . 이전 프로토콜과의 역 호환성을 유지하기 위해 대부분의 HTTP 기능을 유지합니다. 그러나 몇 가지 대폭 개선을 도입했습니다.

HTTP 또는 HTTP / 2는 모두 다음을 정의합니다.

  • 다른 명령에 대한 응답으로 웹 브라우저 및 서버가 수행해야하는 작업
  • 웹을 통해 모든 정보가 한 컴퓨터에서 다른 컴퓨터로 전송되는 방식.
  • 메시지 생성, 형식화 및 전송 방법.

즉, HTTP 및 HTTP / 2는 웹 콘텐츠가 컴퓨터에 전달되는 방식에 대한 표준을 설정하지만 HTTP / 2는 이전 버전보다 모든 것을 더 빠르게 만듭니다. 여기서 HTTP / 2가 수행하는 작업을 자세히 볼 수 있습니다.



멀티 플렉스 스트림

한 서버와 클라이언트간에 HTTP / 2 프로토콜을 통해 전송되는 양방향 일련의 텍스트 형식 프레임을 '스트림'이라고합니다. HTTP는 한 번에 이러한 '스트림'중 하나만 전송할 수 있습니다. 스트림이 전송 된 후 다음 스트림 전송 사이에 시간 지연이 있습니다.

HTTP / 2는 '스트림'을 하나씩 전송하는 문제를 직접 해결하는 새로운 이진 프레이밍 계층을 설정합니다. 이를 통해 클라이언트와 서버는 HTTP / 2 페이로드를 작고 독립적이며 관리하기 쉬운 인터리브 프레임 시퀀스로 분해 할 수 있습니다. 이 모든 정보는 다른 쪽 끝에서 수신되면 재 조립됩니다. 이 프로토콜을 사용하면 연속적인 스트림간에 대기 시간없이 여러 개의 동시 개방형 독립 양방향 시퀀스를 교환 할 수 있습니다.

혜택:

  • 병렬 다중화 요청과 응답은 서로를 차단하지 않습니다.
  • 단일 TCP 연결은 여러 데이터 스트림을 전송할 때에도 효과적인 네트워크 리소스 활용을 보장 할 수 있습니다.
  • 더 빠른 웹 성능, 감소 된 대기 시간, 더 나은 검색 엔진 결과.
  • 운영중인 네트워크 및 IT 리소스에서 CapEx 및 OpEx 감소.

HTTP / 2 서버 푸시 및 캐시 푸시

서버가 캐시 가능한 추가 정보를 클라이언트에 보낼 수있는 기능입니다. . 이 정보는 요청되지 않았지만 향후 요청에 사용될 예정입니다. 클라이언트가 하나의 리소스 A를 요청하고 다른 리소스 B가 요청 된 리소스와 참조되는 것으로 알려진 경우 서버는 다른 클라이언트 요청을 기다리는 대신 A와 함께 B를 푸시 할 수 있습니다. 그런 다음 클라이언트는 나중에 사용할 수 있도록 푸시 된 리소스 B를 캐시에 저장합니다. 이 기능은 전체 요청 응답 왕복 프로세스를 저장하고 네트워크 대기 시간을 줄입니다. Google은 원래 SPDY 프로토콜에서 서버 푸시를 도입했습니다.

HTTP / 2의 또 다른 개선 사항은 캐시 푸시입니다. 이렇게하면 클라이언트의 캐시가 사전에 업데이트되거나 무효화됩니다. 이를 통해 서버는 클라이언트가 실제로 원하지 않는 푸시 가능한 리소스를 식별 할 수 있습니다.

혜택:

  • 클라이언트는 캐시 된 리소스의 효율적인 리포지토리를 유지하기 위해 푸시 된 리소스를 거부 할 수 있습니다 (또는 서버 푸시를 완전히 비활성화 할 수도 있음).
  • 클라이언트는 동시에 멀티플렉싱되는 푸시 스트림 수를 제한 할 수 있습니다.
  • 서버는 푸시 된 리소스의 우선 순위를 지정할 수 있습니다. 이것은 HTTP / 2와 HTTP 간의 성능 차이의 핵심입니다.
  • 서버는 동일한 TCP 연결 내에서 클라이언트가 요청한 정보와 함께 푸시 된 리소스를 다중화 할 수 있습니다.
  • 클라이언트는 여러 페이지에서 캐시 된 리소스를 사용할 수 있습니다.
  • 클라이언트는 푸시 된 리소스를 캐시 메모리에 저장합니다.

바이너리 프로토콜

HTTP / 2는 텍스트 프로토콜을 바이너리 프로토콜로 변환 할 때 기능이 크게 향상되었습니다. . HTTP는 요청-응답주기를 실행하기 위해 텍스트 명령을 처리하는 데 사용되었지만 HTTP / 2는 이진 명령에 의존합니다. 이는 동일한 작업을 실행하는 시간 (1 초 및 0 초)을 단축합니다.

HTTP / 2를 지원하는 브라우저는 텍스트 명령을 네트워크를 통해 전송하기 전에 이진 코드로 변환합니다. 그러나 이진 프레임 계층은 HTTP 서버 및 클라이언트와 역 호환되지 않습니다.

혜택:

  • HTTP의 텍스트 특성과 관련된 보안 문제 방지 (예 : 응답 분할 공격).
  • 압축, 우선 순위 지정, 멀티플렉싱, TLS의 효과적인 처리 및 흐름 제어와 같은 HTTP / 2 기능을 활성화합니다.
  • 보다 쉬운 구현 및 처리를 허용하는 명령의 간결한 표현.
  • 클라이언트와 서버 간의 강력하고 효과적인 데이터 처리.
  • 처리량 향상 및 네트워크 대기 시간 감소.
  • HTTP와 비교할 때 오류 가능성이 적습니다.
  • 매우 효율적인 네트워크 리소스 활용.
  • 데이터 구문 분석의 오버 헤드가 적습니다.
  • 더 가벼운 네트워크 공간.

스트림 우선 순위

HTTP / 2는 클라이언트가 특정 데이터 스트림에 기본 설정을 제공 할 수 있도록합니다. 서버는 이러한 클라이언트의 지침을 따르도록 얽매이지 않지만이 메커니즘을 통해 서버는 사용자 요구 사항에 따라 네트워크 리소스 할당을 최적화 할 수 있습니다. .

스트림 우선 순위는 각 스트림에 할당 된 가중치 및 종속성과 함께 작동합니다. 모든 스트림은 본질적으로 서로 의존적이라는 사실에도 불구하고 1에서 256 사이의 가중치가 할당됩니다. 스트림 우선 순위 매커니즘은 여전히 ​​논쟁의 주제입니다. 그러나 스트림 우선 순위 지정이 단일 TCP 연결에서 여러 데이터 스트림을 처리하는 HTTP / 2 기능과 결합되면 우선 순위가 다른 서버 요청이 동시에 도착할 수 있습니다.

혜택:

  • 네트워크 지연 문제의 부정적인 영향을 줄였습니다.
  • 사용자 경험 및 페이지로드 속도가 향상되었습니다.
  • 서버와 클라이언트 간의 데이터 통신 최적화.
  • 매우 효과적인 네트워크 리소스 활용.
  • 주요 콘텐츠 요청에 대한 배달 시간 단축.

상태 저장 헤더 압축

사용자가 HTTP를 사용하여 미디어가 풍부한 콘텐츠 웹 사이트를 탐색 할 때 클라이언트는 거의 동일한 여러 헤더 프레임을 푸시합니다. 각 클라이언트 요청에는 서버가 요청 된 작업을 수행하는 데 필요한만큼의 정보가 포함되어야하기 때문입니다. 이 프로세스는 대기 시간과 불필요한 리소스 소비로 이어집니다.

HTTP / 2에는 많은 수의 중복 헤더 프레임을 압축하는 기능이 포함되어 있습니다. 헤더 압축에 대한 안전하고 간단한 접근 방식으로 HPACK 사양에 의존합니다. . 클라이언트와 서버는 이전 클라이언트-서버 요청에 사용 된 헤더 목록을 유지합니다. 이는 중복 헤더 프레임의 문제를 직접 해결합니다.

혜택:

  • 일반적으로 사용되는 헤더와 큰 헤더를 인코딩합니다. 따라서 전체 헤더 프레임을 보낼 필요가 없습니다. 각 스트림의 개별 크기가 크게 줄어 듭니다.
  • 압축 된 헤더로 데이터 스트림을 탐색하는 CRIME과 같은 보안 공격을 방지합니다.
  • 멀티플렉싱 메커니즘의 효율적인 활용.
  • 효율적인 스트림 우선 순위 지정.
  • 리소스 오버 헤드 감소.

HTTP / 2의 실제 이점

HTTP / 2는 기술의 잠재력을 극대화하는 데 중점을 둡니다. , 미래의 요구와 기대를 충족합니다. HTTP / 2 사용의 실제 이점은 다음과 같습니다.

웹 성능 및 모바일 웹 성능 – HTTP / 2에는 하나의 클라이언트-서버 통신주기에서 더 많은 데이터를 보내고받는 기능이 있습니다. 사용자 당 대역폭이 제한된 모바일 데이터 네트워크 및 네트워크에서 인터넷 서비스에 액세스 할 때 대기 시간을 줄이는 데 효과적입니다.

저렴한 고속 인터넷 – HTTP / 2는 데이터 통신의 효율성을 높입니다. 이를 통해 인터넷 공급자는 고속 인터넷의 표준을 유지하면서 전체 비용을 줄일 수 있습니다.

보안 – HTTP / 2는 텍스트 기반 애플리케이션 계층 프로토콜을 표적으로하는 위협에 취약하지 않습니다. 또한“Security by Obscurity”접근 방식을 사용하여 클라이언트와 서버 간의 민감한 데이터 전송을 보호합니다.

광범위한 도달 – HTTP / 2의 장점은 공급자의 인터넷 결과를 감소시킵니다. 이는 전 세계적으로 더 넓은 인터넷 범위로 이어질 것입니다.

미디어가 풍부한 웹 경험 – HTTP / 2가 World Wide Web에 제공하는 기술 기능 및 장점은 더 빠른 페이지로드 속도로 미디어가 풍부한 콘텐츠를 제공 할 수있는 인프라를 제공합니다.

마무리

HTTP / 2는 비교적 새로운 프로토콜이지만 이에 대한 지원은 지속적으로 증가하고 있습니다. 오늘날 대부분의 인터넷 브라우저는 HTTP / 2 (Microsoft Edge, Google Chrome, Safari, Firefox, Android 용 Chrome)를 지원합니다. 많은 웹 서버에는 HTTP / 2 기본 지원 (Apache HTTP Server, Tomcat, NGINX)이 포함되어 있습니다. 의심 할 여지없이 HTTP / 2는 미래의 WWW 프로토콜입니다.

5 분 읽기