HTTP 통신 발전 과정

임찬형·2022년 6월 24일

CS 공부

목록 보기
6/19

1. HTTP/1.0

기본적으로 한 연결당 하나의 요청을 처리함

서버와 통신을 할 때마다 TCP 3 way handshake를 해야 하므로 RTT가 증가하는 단점 존재.

2. HTTP/1.1

매번 TCP 연결을 하는 것이 아니라 한 번 TCP를 초기화한 이후에 keep-alive라는 옵션으로 여러 개의 파일 송수신 가능.

  • 한 번 3 way handshake를 진행하면 그 다음부터는 진행하지 않아도 됨.

  • 하지만 다수의 파일을 송수신하려면 그만큼 대기시간이 길어지는 단점 존재 (HOL 발생).

  • HTTP/1.1의 헤더에는 많은 메타데이터가 있고 압축이 되지 않아 무거움.

+) HOL(Head Of Line Blocking): 같은 큐에 있는 패킷이 해당 큐의 첫 번째 패킷에 의해 지연되는 현상

3. HTTP/2

HTTP/1.x보다 지연 시간을 줄이고 응답 시간을 더 빠르게 할 수 있으며 멀티플렉싱, 헤더 압축, 서버 푸시, 요청 우선순위 처리 지원

  • 멀티플렉싱: 여러 스트림을 사용해 송수신 - 특정 스트림 패킷 손상돼도 나머지 스트림은 멀쩡
    단일 연결에서 멀티플렉싱을 이용해 여러 스트림으로 나눔으로써 HOL 방지.

  • 헤더 압축: 허프만 코딩 압축 알고리즘인 HPACK을 사용해 헤더를 압축.

  • 서버 푸시: HTTP/1.1에서는 클라이언트가 서버에 요청을 해야 파일 전송하나 HTTP/2에선 요청 없이 서버가 바로 푸시 가능

ex)
HTTP/1.1 - html 파일 요청 - html 파일 전송 - css 파일 요청 - css 파일 전송
HTTP/2 - html파일 요청 - html 파일 전송 - css 파일 전송

4. HTTPS

어플리케이션 계층과 전송 계층 사이에 SSL/TLS 계층을 넣은 신뢰할 수 있는 HTTP 요청. (통신 암호화)

SSL(Secure Socket Layer) / TLS(Transport Layer Security Protocol) - 전송 계층에서 보안 제공하는 프로토콜

보안 세션을 기반으로 데이터 암호화함.

클라이언트와 서버가 키를 공유하고 이를 기반으로 인증, 인증 확인 등의 작업이 일어나는 한 번의 RTT가 발생하고 데이터를 송수신.

암호화 알고리즘 - 디피-헬만 키 교환 알고리즘 (공개 키와 개인 키를 이용해 공통의 암호키를 생성)

해싱 알고리즘 - SHA-256 (해시 함수의 결과값이 256비트)

5. HTTP/3

TCP에서 돌아가는 HTTP/2와는 달리 QUIC이라는 계층 위에서 돌아가며 UDP 기반.
멀티플렉싱 기능이 역시나 존재하며 초기 연결 설정 시 지연 시간 감소 장점(UDP).

첫 연결 설정에 1-RTT만 소요됨.

순방향 오류 수정 메커니즘 존재 (전송한 패킷 손실되면 수신 측에서 에러 검출하고 수정하는 방식)

멀티플렉싱 방법
멀티플렉싱 - 단일 링크를 통해 여러 개의 신호를 동시에 전송하는 방법

분할 방법
1. FDM(주파수 분할) - 주파수마다 채널을 할당해 합쳐 한 라인으로 보냄.
2. WDM(파장 분할) - 여러 파장을 합쳐서 한 라인으로 보냄.
3. TDM(시간 분할) - 시간에 따라 채널을 나눠 보냄.

이러한 방법으로 단일 링크에 여러 종류의 스트림을 보내어 HOL을 방지할 수 있다.

0개의 댓글