Http vs Https

HTTP (HyperText Transfer Protocol)와 HTTPS (HyperText Transfer Protocol Secure)는 웹에서 데이터를 전송하는 프로토콜입니다.

HTTP:

  • 데이터 암호화: HTTP는 데이터를 암호화하지 않고 전송하기 때문에 전송 중인 데이터가 중간에서 도청되거나 변조될 수 있습니다.

  • 포트 번호: HTTP는 기본적으로 80 포트를 사용합니다.

  • 보안 수준: 보안이 없기 때문에 민감한 정보(예: 비밀번호, 신용카드 정보)를 전송하는 데 적합하지 않습니다.

HTTPS:

  • 데이터 암호화: HTTPS는 데이터를 암호화하여 전송합니다. SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security) 프로토콜을 사용하여 데이터를 암호화합니다. 이를 통해 전송 중인 데이터의 기밀성, 무결성, 인증을 보장합니다.

  • 포트 번호: HTTPS는 기본적으로 443 포트를 사용합니다.

  • 보안 인증서: HTTPS는 인증 기관(CA)이 발급한 SSL/TLS 인증서를 사용하여 서버의 신원을 확인합니다. 클라이언트는 서버의 인증서를 확인하고, 서버가 신뢰할 수 있는지 확인합니다.

  • 보안 수준: HTTPS는 보안이 강화된 프로토콜로, 민감한 정보를 안전하게 전송할 수 있습니다.

HTTP/2

HTTP/2는 HTTP/1.1의 후속 버전으로, 웹 성능을 향상시키기 위해 여러 가지 개선된 기능을 도입한 프로토콜입니다. 멀티플렉싱, 헤더 압축, 서버 푸시, 스트림 우선순위와 같은 기능을 통해 HTTP/1.1의 한계를 극복하고 더 빠르고 효율적인 웹 통신을 가능하게 합니다. 주로 HTTPS와 함께 사용되며, 웹 보안과 성능을 동시에 제공합니다.

HTTP/2의 주요 특징

  1. 멀티플렉싱 (Multiplexing):

    • HTTP/2는 단일 TCP 연결을 통해 여러 개의 요청과 응답을 동시에 주고받을 수 있습니다. 이를 통해 여러 개의 병렬 요청을 처리하는 데 필요한 오버헤드를 줄이고, 페이지 로딩 속도를 개선합니다.

  2. 헤더 압축 (Header Compression):

    • HTTP/2는 HPACK이라는 효율적인 헤더 압축 기법을 사용하여 HTTP 헤더의 크기를 줄입니다. 이는 대역폭을 절약하고 전송 시간을 단축하는 데 도움이 됩니다.

  3. 서버 푸시 (Server Push):

    • HTTP/2는 서버가 클라이언트의 요청을 예측하여 추가 리소스를 푸시할 수 있게 합니다. 예를 들어, HTML 문서 요청 시 서버는 필요한 CSS나 JavaScript 파일을 클라이언트가 요청하기 전에 미리 전송할 수 있습니다. 이를 통해 페이지 로딩 시간을 줄일 수 있습니다.

  4. 스트림 우선순위 (Stream Prioritization):

    • HTTP/2는 클라이언트가 요청의 우선순위를 지정할 수 있도록 하여 중요한 리소스를 먼저 전송하도록 합니다. 이를 통해 중요한 콘텐츠가 더 빨리 로드될 수 있습니다.

  5. 이진 프로토콜 (Binary Protocol):

    • HTTP/2는 텍스트 기반이 아닌 이진 기반 프로토콜을 사용합니다. 이로 인해 프레임을 더 효율적으로 분석하고 처리할 수 있으며, 데이터 전송의 효율성을 높입니다.

HTTP/2의 이점

  • 성능 향상: 멀티플렉싱과 헤더 압축, 서버 푸시 등을 통해 페이지 로딩 속도를 크게 개선합니다.

  • 효율성: 단일 연결을 통해 여러 요청을 처리함으로써 연결 설정과 해제의 오버헤드를 줄이고, 네트워크 리소스를 더 효율적으로 사용합니다.

  • 유연성: 스트림 우선순위 설정을 통해 중요한 콘텐츠가 더 빠르게 로드되도록 합니다.

HTTP/2와 HTTPS

  • HTTP/2는 HTTPS와 함께 사용하는 것이 일반적입니다. 많은 웹 브라우저와 서버는 HTTP/2를 HTTPS와 함께 구현하여 보안과 성능을 모두 향상시킵니다. HTTP/2의 이점은 암호화된 연결에서도 그대로 적용됩니다.

Last updated