HTTP/2 톺아보기

HTTP

HTTP(HyperText Transfer Protocol)W3(www) 웹에서 HTML 문서 또는 이미지와 같은 리소스인 데이터 정보를 주고받기 위한 프로토콜이다.

HTTP 프로토콜은 TCP/IP 프로토콜을 기반으로 하고 있다. 즉, HTTP 프로토콜은 TCP/IP 프로토콜을 사용하여 클라이언트와 서버 간의 연결을 유지하고, 데이터를 주고받는다. TCP 프로토콜은 신뢰성 있는 스트림 전송 서비스를 제공한다.

HTTP 통신 방식의 특징

Connectionless 비연결성

  • 클라이언트가 서버에 요청을 보내면, 서버가 클라이언트에 응답을 보내고 연결을 끊는다.
  • 이후, 다시 클라이언트는 다른 요청을 보내기 위해 새로운 연결을 시작한다.

Stateless 무상태성

  • 서버는 클라이언트의 이전 요청에 대한 정보를 가지고 있지 않는다.
  • 즉, 클라이언트가 이전 요청과 다음 요청이 독립적으로 처리된다.
  • 이를 해결하기 위해 쿠키와 세션 등의 기술이 사용된다.

Request/Response 요청/응답

  • 클라이언트가 서버에 요청을 보내면, 서버는 클라이언트에 응답을 보낸다.
  • 이 과정에서 데이터는 HTTP 메시지 형태로 전송되며, 이 메시지는 요청 메시지와 응답 메시지로 구분된다.

HTTP/2

HTTP/2HTTP/1 의 단점을 보완하기 위해 나온 프로토콜이다. HTTP/1 의 단점은 단일 연결을 유지하는 방식으로 인해 연결이 많아질수록 성능이 저하되는 문제가 있었다. 이를 해결하기 위해 HTTP/2 는 연결을 최적화하고, 데이터 전송 최적화를 위해 여러 요청을 한 번에 보내는 등의 방식을 사용한다.

HTTP/2 통신 방식의 특징

Multiplexing 다중화

  • 하나의 TCP 연결을 통해 여러 개의 요청과 응답을 동시 처리 가능하다.
  • 이를 통해 네트워크 연결의 수를 줄이고, 성능을 향상시킬 수 있다.

Header Compression 헤더 압축

  • HPACK 압축 포맷을 사용하여 헤더 데이터를 압축한다.
  • 전송 데이터의 크기를 줄일 수 있다.

Server Push 서버 푸시

  • 서버가 클라이언트의 요청을 기다리지 않고 능동적으로 리소스를 클라이언트에게 보낼 수 있다.
  • 클라이언트가 리소스를 미리 받아 처리하여 추가적인 라운드 트립을 줄일 수 있다.

Stream Prioritization 스트림 우선순위

  • HTTP/2 는 리소스 간의 우선순위를 설정하고, 중요한 리소스를 먼저 로드할 수 있다.

Conclusion

  • HTTP/2HTTP/1 의 단점을 보완하기 위해 나온 프로토콜이다.
  • HTTP/2 는 연결을 최적화하고, 데이터 전송 최적화를 위해 여러 요청을 한 번에 보내는 등의 방식을 사용한다.
  • HTTP/2 는 하나의 TCP 연결을 통해 여러 개의 요청과 응답을 동시 처리 가능하다.
  • HTTP/2 는 헤더 압축을 사용하여 헤더 데이터를 압축한다.
  • HTTP/2 는 서버 푸시를 사용하여 클라이언트가 리소스를 미리 받아 처리하여 추가적인 라운드 트립을 줄일 수 있다.
  • HTTP/2 는 스트림 우선순위를 사용하여 중요한 리소스를 먼저 로드할 수 있다.

출처