본문 바로가기
Knowledge/CS

[CS] HTTP 1.0 / 1.1 / 2

by YoonJong 2023. 1. 11.
728x90

HTTP 는 1.0 부터 시작되었다.

HTTP/1.0 은 기본적으로 한 연결당 하나의 요청을 처리한다.

서버로부터 파일을 가져올 때마다 TCP 의 3-way-handshake 가 진행되어 RTT(Round Trip Time 패킷왕복시간) 이 증가되는 단점이 있다.

이를 보완하기 위해 스플리팅 , 코드 압축 , 이미지 Base64 인코딩 등을 사용했다.

 

- 스플리팅 : 하나로 합쳐져 있는 파일(이미지 등)을 다운로드 받아 사용

- 코드 압축 : 빈칸, 개행문자를 없애서 크기를 최소화

- 이미지 Base64 인코딩 : 64진법으로 이루어진 문자열로 인코딩 하는 방법, 서버에 HTTP 요청을 할필요는 없지만 크기가 더 커지는 단점이 있다.


HTTP/1.1 은 1.0 과 달리 TCP 초기화를 한번 한 후 keep - alive 라는 옵션으로 여러 개의 파일을 송수신 할 수 있다.

하지만 , 리소스가 많으 파일을 처리하려면 대기 시간이 길어지는 단점이 있다.

( HOL Blocking : Head of Line Blocking )  - 현재 패킷에 의해 다음 패킷이 지연되는 것을 의미

HTTP/1.1 헤더에는 많은 데이터가 들어있어 압축이 되지 않고 무겁다.

면접을 위한 CS 지식


HTTP/2 는 HTTP/1.x 보다 지연시간을 줄이고 응답시간이 더 빠르다.

멀티 플렉싱 ,헤더 압축  ,서버 푸시 , 요청의 우선순위를 처리를 지원한다.

 

- 멀티 플렉싱 : 여러 개의 스트림을 사용하여 송수신 ( HOL blocking 을 해결할 수 있다 )

- 헤더 압축 : HTTP/1.1 의 헤더 압축문제를 해결 ( 허프만 코딩 압축 알고리즘 사용 )

- 서버 푸시 : 클라이언트 요청없이 서버가 바로 리소스를 푸시 ex) html 을 읽으면서 css 파일을 서버에 푸시

 

 

728x90

'Knowledge > CS' 카테고리의 다른 글

[CS] 시스템 콜  (0) 2023.01.23
[CS] 스프링 프레임워크란?  (0) 2023.01.13
[CS] 네트워크 토폴로지  (0) 2022.12.30
[CS] 처리량과 지연시간  (0) 2022.12.30
[CS] 로드 밸런싱(Load Balancing)  (0) 2022.12.27

댓글