Thief of Wealth
Published 2021. 12. 7. 00:22
http1.1 vs http2 개발/FrontEnd Interview

http

http (hypertext transfer protocol)은 웹상에서 client-server와 통신을 위한 protocol이다.

 

http1.1

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

그래서 동시전송이 불가능하고 요청이 응답이 순차적으로 이루어진다.

 

http1.1의 문제점

 

1. HOL이 발생한다.

HOL은 Head Of Line의 약자로 특정 응답의 지연을 뜻한다.

 

이미지 3개를 요청하는데, 첫번쨰 이미지의 용량이 크다면 2,3번째 요청이 지연된다.

 

2. RTT 증가

RTT는 Round Trip Time의 약자이다. (패킷왕복시간)

하나의 connection에 하나의 요청을 처리하므로

매번 요청할때마다 connection을 생성하고 3-way-handshake가 반복적으로 일어나게 되기 때문이다.

 

3. Header가 무겁다.

http1.1의 헤더에는 meta정보들이 많다.

매번 요청할때마다 중복된 헤더를 전송한다. (쿠키포함)

( 심지어 User-Agent는 120byte )

 

http1.1 단점을 해결하고자 하는 노력들

 

1. image spriting

페이스북이나 서비스들에서 개발자 도구로 이미지를 열어보면, 다양한 이미지들의 조합으로 이루어진 1개의 이미지를 확인할 수 있다.

1개의 이미지에 여러개 이미지를 넣어놓고 css로 위치를 조정하는 방법이다.

 

2. Domain Sharding

도메인 샤딩은 정적파일의 로딩속도를 개선하는 방법으로, 여러개의 서브도메인을 생성하여 정적파일을 병렬로 가져오는 방식이다.

즉 a.b.com 도메인으로 모든 정적파일을 요청하게되면 크롬을 기준으로 동시에 6개정도의 파일밖에 다운못한다.

그래서 a-1.b.com, a-2.b.com 등의 서브 도메인으로 나누면 동시에 12개의 파일을 다운로드 받을 수 있게 된다.

 

그 외 (https://www.popit.kr/%EB%82%98%EB%A7%8C-%EB%AA%A8%EB%A5%B4%EA%B3%A0-%EC%9E%88%EB%8D%98-http2/)

 

http2의 특징

 

1. Multiplexed Streams

http2는 Multiplexed Streams라는 기술을 사용하는데,

한 커넥션으로 동시에 여러개의 메시지를 주고받을 수 있는 기술이다.

 

2. Stream Prioritization

html ,css, image등의 리소스들의 우선순위를 알아서 설정해서 요청을 보낸다.

 

3. Server Push

클라이언트가 요청하지도 않은 리소스를 push해주는 방법으로 클라이언트 요청을 최소화한다.

원래는 html문서를 해석하면서 필요한 요소를 요청하는데, 미리다 보내버릴 수도 있다는 뜻

 

4. Header Compression

Header의 정보를 압축 및 중복 방지 알고리즘을 적용하여 요청을 가볍게 만들 수 있다.

 

참고

https://www.popit.kr/%EB%82%98%EB%A7%8C-%EB%AA%A8%EB%A5%B4%EA%B3%A0-%EC%9E%88%EB%8D%98-http2/

'개발 > FrontEnd Interview' 카테고리의 다른 글

react와 react-native  (0) 2022.06.03
OAuth란?  (0) 2021.12.08
box-sizing에서 content-box, border-box 차이점  (0) 2021.12.03
default export 와 named export의 차이점  (0) 2021.12.01
redux-saga가 해결하고자 하는 것  (0) 2021.11.30
profile on loading

Loading...