HTTP와 HTTPS의 차이점

고승원·2023년 3월 29일
0

CS

목록 보기
12/12

HTTP 1.1

  • 기본적으로 Connection 하나당 하나의 요청을 처리하도록 설계되어 있다.

  • 동시에 여러개의 리소스를 주고받는 것이 불가능 하기 때문에 순차적으로 이루어진다.
    → 다수의 리소스를 처리할 때 latency가 생긴다.

  • 이러한 특성 때문에 Head Of Line Blocking이 발생한다.

    첫 번째 패킷에 의해 지연될 때 발생하는 성능 저하 현상. 최악의 경우 패킷 드랍까지 발생.

  • 이 외에도 TCP에서의 성능 지연, 무거운 header등 문제점이 많아 이를 개선하기 위해 여러가지 방법을 만들었다.
  • 그 방법중 알아야 할건 구글의 SPDY는 http를 통한 전송을 재정의하여 고속화 하였다.

HTTP 2.0

  • SPDY를 참고하여 HTTP2가 탄생했다. 특히 Latency나 서버 사용량같은 성능 위주 개선이 이루어졌다.
  • HTTP2는 Multiplexed Stream을 이용하여 한 Connection으로 동시에 여러개의 메세지를 주고 받을 수 있다.
  • Stream Prioritization
    Latency에 대비해 리소스간의 의존관계에 따른 우선순위를 설정하여 문제를 해결한다.
  • Server Push
    서버는 클라이언트가 요청하지 않은 리소스를 사전에 Push할 수 있다. Push된 리소스는 추후에 HTML문서를 요청할 때 사전에 받은 리소스로 인해 클라이언트의 요청을 최소화할 수 있다.
  • Header Compression
    클라이언트에서 중복된 요청을 검출해내고 중복하지 않은 정보만 전송한다.

HTTP 3.0

  • UDP 방식으로 2.0보다 속도가 매우 향상되었다.

HTTPS(secure)

  • HTTP를 암호화하는 방법으로 기본적으로 SSL/TLS을 사용하여 암호화된 형식으로 HTTP메세지를 래핑한다.

  • 대칭키를 통해 세션키를 발급받고, 비대칭키를 이용해서 세션키를 공유한다.

    • SSL

      Secure Sockets Layer의 약자로 암호화 기반 인터넷 보안 프로토콜을 뜻한다.

      전달되는 모든 데이터를 암호화하고 특정 유형의 공격도 차단한다. SSL은 TLS 암호화의 전신이기도 하다.

    • TLS

      Transport Layer Security의 약자로 SSL의 업데이트 버전이라고 생각하면 편하다.

      데이터를 암호화하고 handshake을 통해 인증이 이루어진다. 또한 데이터 무결성을 위해 데이터에 디지털 서명을 하여 데이터가 도착 전에 조작된지 확인한다.

profile
봄은 영어로 스프링

0개의 댓글