HTTP
HTTP(Hyper Text Transfer Protocol)은 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜이며,
웹 브라우저와 웹 서버간의 통신을 위해 만들어졌습니다.
HTTP1.1의 단점을 보완해서 나온 버전이 HTTP/2입니다.
HTTP/2를 설명하기 이전에 HTTP 1.1과 HTTP/2.0의 차이점에 대해서 설명해보겠습니다.
우선 HTTP 1.1방식의 단점은 아래와 같습니다.
- 기본적으로 HTTP 1.1은 Connection당 하나의 요청을 처리하도록 설계되었습니다.
- 그리고 요청의 순서는 순차적으로(FCFS) 진행해줍니다.
- 하지만 이러한 방식은 순서가 명확하게 정해져 있기에, 문제점이 있었습니다.
- 처리하기 쉬운 오브젝트도 순서가 뒤로 밀려있으면, 자기 순서가 올 때까지 하염없이 기다려야 하는 단점이 있습니다.
- 이러한 지연을 우리는 HOLB(Head of Line Blocking)이라고 합니다.
- 하지만 이러한 방식은 순서가 명확하게 정해져 있기에, 문제점이 있었습니다.
- 그리고 요청의 순서는 순차적으로(FCFS) 진행해줍니다.
- 한번의 커넥션에 한번의 요청과 응답을 처리하다보니,HandShaking 과정이 반복되면 RTT가 증가되고, 성능이 저하됩니다.
- RTT : 패킷이 목적지에 도달하고 나서 해당 패킷에 대한 응답이 출발지로 다시 돌아오기까지의 시간입니다.
- 손실된 TCP 세그멘트를 재전송하기 때문에 개체 전송이 지연됩니다.
HTTP/2는 이러한 HTTP/1.1의 단점을 보안하기 위해서 등장했습니다.
HTTP/2의 목적
여러개의 오브젝트 HTTP requests할때 deplay
를 줄이는 것입니다.
HTTP/2는 HTTP1.1의 단점중 하나인 HOLB를 완화했습니다.
O2,O3,O4가 가벼운 오브젝트더라도, O1이 끝날때까지 기다려야한다.
이러한 기다림과 지연을 Head of Line Blocking
HTTP/2는 오브젝트를 프레임 단위로 나눠서 프레임단위로 진행합니다.
이렇게 프레임 단위로 작업을 나눠서 진행하면 이제 다른 작업들이 무작정 기다릴 필요도 없기 때문에 지연시간이 짧아짐.
HTTP/3
가장 큰 특징은 TCP가 아닌 UDP를 사용한다는 것이다.
정확히 말하면 HTTP3는 QUIC라는 프로토콜 위에서 돌아가는 HTTP인데,
QUIC는 Quick UDP Internet Connection의 약자로 UDP를 사용하는 프로토콜이다.
'Computer Science > Network' 카테고리의 다른 글
[컴퓨터망]- Peer-to-Peer(P2P) (0) | 2023.04.12 |
---|---|
[컴퓨터 망] DNS(Domain Name System) (0) | 2023.04.11 |
[컴퓨터망] - 쿠키와 웹 캐시 (0) | 2023.04.11 |
[컴퓨터망] - Web and HTTP (0) | 2023.04.09 |
[컴퓨터망] - Application Layer(네트워크 어플리케이션의 원칙) (0) | 2023.04.08 |