반응형
250x250
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

짧은코딩

HTTP/2, HTTPS, HTTP3 본문

CS/네트워크

HTTP/2, HTTPS, HTTP3

5_hyun 2022. 12. 12. 02:50

HTTP/2

HTTP/2는 HPPT/1.x보다 지연 시간은 줄고 응답 시간을 더 빠르게 할 수 있다.

멀티플렉싱, 헤더 압축, 서버 푸시, 요청의 우선순위 처리를 지원하는 프로토콜이다.

멀티플렉싱

멀티플렉싱은 여러 개의 스트림을 사용해 송수신한다. 만약 특정 스트림의 패킷이 손실되어도 해당 스트림에만 영향을 미치고 다른 스트림은 잘 동작한다.

사진처럼 병렬적인 스트림을 사용하여 데이터를 송수신한다. 또한 스트림 안의 데이터들도 쪼개져있어서 독립된 프레임으로 조각되어 송수신하고 다시 조립하며 데이터를 주고받는다.

 

-스트림(stream)

시간이 지남에 따라 사용할 수 있는 데이터 흐름

 

-HOL Blocking 해결

HTTP/1.x에서는 앞에 큰 데이터가 오래 걸리면 HOL Blocking이 발생한다.

하지만 HTTP/2에서는 병렬적으로 송수신하여 이 문제를 해결할 수 있다.

헤더 압축

HPPT/1.x는 헤더가 크지만 HTTP/2에서는 허프만 코딩 압축 알고리즘을 사용하는 HPACK 압축 형식으로 헤더를 압축해서 보낸다.       

 

-허프만 코딩(huffman coding)

허프만 코딩은 문자 단위가 높은 정보는 적은 비트 수를 사용하고, 빈도가 낮은 정보는 비트를 많이 사용하여 전체 비트 수를 줄이는 것이다.

서버 푸시

웹 페이지를 보여줄 때, css나 js가 포함되어 있다. 하지만 HTTP/1.1에서는 클라이언트가 서버에 요청을 해야 파일을 받을 수 있다.

반면에 HTTP/2는 서버에서 파일들(css, js 등)을 바로 푸시할 수 있다. 


HTTPS

HTTP/2는 HTTPS의 위에서 동작한다. HTTPS는 애플리케이션 계층과 전송 계층 사이에 SSL/TLS 계층을 넣어 통신을 암호화하며 신뢰 높은 HTTP 요청을 할 수 있다.

SSL(Secure Socket Layer)/TLS(Transport Layer Security Protocol)

SSL/TLS는 전송 계층에서 보안을 제공하는 프로토콜이다. 클라이언트와 서버가 통신할 때 SSL/TLS를 이용해서 해커들이 메시지를 '인터셉터'하는 행위를 방지할 수 있다.

SSL/TLS는 보안 세션을 기반으로 데이터를 암호화한다. 보안 세션이 만들어지면서 인증 메커니즘, 키 교환 암호화 알고리즘, 해싱 알고리즘이 사용된다.

 

-보안 세션

보안 세션은 보안의 시작과 끝 동안 유지되는 세션이다. 핸드셰이크를 이용해 세션이 생성되고 이를 기반으로 상태 정보를 공유한다. 클라이언트와 서버가 1-RTT를 생성한 후에 클라이언트와 서버가 키를 공유하고 데이터를 송수신한다.

 

-세션

운영체제가 어떤 사용자로부터 자원, 응용 프로그램 이용을 허락한 일정 기간

인증 메커니즘

인증 메커니즘은 CA(Certificate Authorities)에서 발급한 인증서를 기반으로 이루어진다. 이 인증서는 안전한 연결을 시작하기 위해 클라이언트에 공개키를 제공하고 사용자가 접속한 서버가 신뢰 가능한 서버임을 보장한다. 

인증서는 서비스 정보, 공개키, 지문, 디지털 서명으로 이뤄져있다. 그리고 CA는 신뢰성이 보장된 기업들만 참여 가능한다.

 

-CA 발급 과정

1. 자신의 서비스가 CA 인증서를 받기 위해서는 사이트 정보, 공개키를 CA에 제출해야 한다.

2. CA는 공개키를 해시 한 값을 기반으로 CA 인증서를 발급한다.

 

-개인키

개인이 소유하고 반드시 자신만 소유하는 키이며 비밀키라고도 불린다.

 

-공개키

공개되어 있는 키

HTTPS 구축 방법

HTTPS 구축 방법은 크게 3가지이다.

 

1. CA에서 구매한 인증키를 기반으로 구축

2. 서버 앞단에 HTTPS를 제공하는 로드밸런서를 둔다.

3. 서버 앞단에 HTTPS를 제공하는 CDN을 둔다.


HTTP/3

HTTP/3는 QUIC 계층 위에서 돌아가고 UDP 기반이다. HTTP/2는 TCP 위에서 돌아간다.

HTTP/2와 마찬가지고 멀티플렉싱을 가지고 있고 초기 연결 설정 시 지연 감소를 한다.

초기 연결 설정 시 지연 시간 감소

-QUIC

QUIC는 TCP와 다르게 3-웨이 핸드셰이크를 하지 않는다. QUIC는 첫 연결 설정에서 1-RTT만을 사용하여 클라이언트가 신호를 주고 서버가 응답하면 바로 통신을 시작할 수 있다.

QUIC는 순방향 오류 수정 메커니즘(FEC, Forword Error Correction)이 적용되어 전송한 패킷이 손실되면 수신 측에서 에러를 검출하고 수정하여 열악한 네트워크 환경에서도 패킷 손실률이 낮다.

728x90
반응형

'CS > 네트워크' 카테고리의 다른 글

HTTP/1.0, HTTP/1.1  (0) 2022.08.30
IP 주소  (0) 2022.08.19
네트워크 기기  (0) 2022.08.10
계층 간 데이터 송수신 과정, PDU  (1) 2022.07.24
TCP/IP 4계층 모델-계층 구조  (0) 2022.07.21
Comments