728x90
โป HTTP ๊ฐ์: https://zu-techlog.tistory.com/60
HTTP ๋ฒ์ - HTTP/1.X, HTTP2, HTTP3
HTTP/1.0
- ํ ์ฐ๊ฒฐ๋น ํ๋์ ์์ฒญ์ ์ฒ๋ฆฌํ๋๋ก ์ค๊ณ
- ์๋ฒ์๊ฒ ์์ฒญ ์ ๋งค๋ฒ ์ฐ๊ฒฐ๊ณผ ํด์ ์ ๊ณผ์ ์ ๋ฐ๋ณตํด์ผ ํ๊ธฐ์ RTT๊ฐ ์ค๋๊ฑธ๋ฆฐ๋ค๋ ๋ฌธ์
- RTT: ํจํท์ด ๋ชฉ์ ์ง์ ๋๋ฌํ๊ณ ๋์ ๋ค์ ์ถ๋ฐ์ง๋ก ๋์์ค๊ธฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ (ํจํท ์๋ณต ์๊ฐ)
HTTP/1.1
- Persistent Connection ์ถ๊ฐ
- HTTP/1.0์ ๋ณด์ํ์ฌ ๋งค๋ฒ TCP ์ฐ๊ฒฐ์ ํ๋ ๊ฒ์ด ์๋๋ผ ํ ๋ฒ TCP ์ด๊ธฐํ๋ฅผ ํ ์ดํ์ keep-alive๋ผ๋ ์ต์ ์ผ๋ก ์ผ์ ์๊ฐ๋์ ์ฐ๊ฒฐ ์ํ๋ฅผ ์ ์ง
- Pipelining ์ถ๊ฐ
- TCP์ ํน์ฑ์ ์์ฒญ ํ ์๋ต์ ๊ธฐ๋ค๋ ค์ผํ๋ ๋ฌธ์ ๋ฅผ ๋ณด์
- ํด๋ผ์ด์ธํธ๋ ์ ์์ฒญ์ ์๋ต์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ์์ฐจ์ ์ผ๋ก ์์ฒญ ์ ์ก, ์๋ฒ๋ ์์ฒญ์ด ๋ค์ด์จ ์์๋๋ก ์๋ต
- HOL Blocking (Head Of Line Blocking) ๋ฌธ์
- ์์ ์์ฒญ(ํจํท)์ ๋ํ ์๋ต์ด ๋ฆ์ด์ง๋ฉด ๋ค์ ๋ชจ๋ ์์ฒญ๋ค์ ๋ชจ๋ blocking๋์ด ์๋ต์ด ์ง์ฐ๋จ
- ์ฐ์๋ ์์ฒญ ๊ฐ์ ํค๋์ ๋ง์ ์ค๋ณต์ด ์๊ธด๋ค๋ ๋ฌธ์
HTTP/2.0
- HTTP/1.x์ ์๊ฐ ์ง์ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ
- Multiplexed streams (๋ฉํฐํ๋ ์ฑ)
- HTTP/1.1์ Pipelining์ ํ๋ฒ์ ์ฐ๊ฒฐ์์ ์ฌ๋ฌ ์์ฒญ์ ๋ณด๋ผ ์๋ ์์์ง๋ง ๋์์ ์ฌ๋ฌ ์์ฒญ์ ์ฒ๋ฆฌํ์ง ๋ชปํ์
- ํ๋์ ์ปค๋ฅ์ ๋ด์ ์ฌ๋ฌ๊ฐ์ ์คํธ๋ฆผ(stream, ์๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ)์ ์ฌ์ฉํ์ฌ ์ก์์
- ๋ฉ์์ง๊ฐ ์ด์งํ๋ ํ ์คํธ์ธ ํ๋ ์(frame)์ผ๋ก ๋๋์ด ์์ฒญ๋ง๋ค ๊ตฌ๋ถ๋๋ ์คํธ๋ฆผ(stream)์ ํตํด ์ ๋ฌ
- ํ๋ ์(frame)์ด ๊ฐ ์์ฒญ์ ์คํธ๋ฆผ(stream)์ ํตํด ์ ๋ฌ๋๋ฉฐ, ํ๋์ ์ปค๋ฅ์ ์์ ์ฌ๋ฌ๊ฐ์ ์คํธ๋ฆผ(stream)์ ๊ฐ์ง ์ ์๊ฒ๋์ด ๋ค์คํ(multiplexing)๊ฐ ๊ฐ๋ฅํด์ง
- ์คํธ๋ฆผ(stream)์ ํตํด ๊ฐ ์์ฒญ์ ์๋ต ์์๊ฐ ์๋ฏธ๊ฐ ์์ด์ ธ HTTP/1.x์ HOL Blocking ๋ฌธ์ ํด๊ฒฐ
- Header Compression (ํค๋ ์์ถ)
- ์์ฒญ๊ณผ ์๋ต ํค๋์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์์ถํด์ ๊ธฐ์กด์ ์ฐ์๋ ์์ฒญ์์์ ์ค๋ณต ํค๋๋ก ์ธํ ์ค๋ฒํค๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ
- ์ด์ ์ ํ์๋ ํค๋๋ฅผ ์ ์ธํ ํ๋๋ฅผ ํํ๋ง ์ฝ๋ฉ์ ํ์ฉํด์ ์์ถ
- Server Push (์๋ฒ ํธ์)
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์์ฒญํ์ง ์์๋ ํด๋ผ์ด์ธํธ์๊ฒ ํ์ํ ๋ฆฌ์์ค๋ฅผ ์๋ฒ๊ฐ ์ถ๊ฐ์ ์ผ๋ก pushํด์ฃผ๋ ๊ธฐ๋ฅ
- ๊ฐ ์์ฒญ๋ง๋ค stream์ผ๋ก ๊ตฌ๋ถํด ๋ณ๋ ฌ์ ์ผ๋ก ์ฒ๋ฆฌํจ์๋ ๋ถ๊ตฌํ๊ณ TCP ๊ณ ์ ์ HOL Blocking์ด ์ฌ์ ํ ์กด์ฌํ๋ ๋ฌธ์
- ์๋ก ๋ค๋ฅธ stream์ด ์ ์ก๋๊ณ ์์ ๋, ํ๋์ Stream์์ ์ ์ค์ด ๋ฐ์๋๊ฑฐ๋ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ๊ฒฐ๊ตญ ๋ค๋ฅธ Stream๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ๋ ๊น์ง ์ง์ฐ๋๋ ํ์์ด ๋ฐ์
HTTP/3.0
- TCP ์์์ ๋์๊ฐ๋ HTTP/2.0์๋ ๋ฌ๋ฆฌ QUIC๋ผ๋ ๊ณ์ธต ์์์ ๋์๊ฐ๋ฉฐ TCP๊ธฐ๋ฐ์ด ์๋ UDP ๊ธฐ๋ฐ
- HTTP/2.0์ ์ฅ์ (๋ฉํฐํ๋ ์ฑ ๋ฑ)์ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์
- ์ด๊ธฐ ์ฐ๊ฒฐ ์ค์ ์ ์ง์ฐ ์๊ฐ ๊ฐ์๋ผ๋ ๋ํ์ ํน์ง (UTP๊ธฐ๋ฐ)
- ์ด๊ธฐ ์ฐ๊ฒฐ(ํต์ ์์) ์ 3-way handshaking ๊ณผ์ ์ ๊ฑฐ์น์ง ์์ 1-RTT๋ง ์์
- ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฑฐ ํ๋ฒ ์ ํธ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ํ ๋ฐ๋ก ํต์ ์์
- TCP์ stream์ ํ๋์ chain์ผ๋ก ์ฐ๊ฒฐ๋๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ ๊ฐ stream๋น ๋ ๋ฆฝ๋ stream chain์ ๊ตฌ์ฑํ์ฌ TCP์ HOL Blocking์ ํด๊ฒฐ
728x90
'Computer Science > ๐ก Network' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋คํธ์ํฌ] ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ(+JWT), ์๋ฒ(์ธ์ )๊ธฐ๋ฐ ์ธ์ฆ (0) | 2023.02.10 |
---|---|
[๋คํธ์ํฌ] SSL/TLS ํธ๋์์ดํฌ - TLS 1.3 (0) | 2023.02.09 |
[๋คํธ์ํฌ] TCP/IP ํ๋ฆ์ ์ด์ ํผ์ก์ ์ด (0) | 2023.02.06 |
[๋คํธ์ํฌ] HTTP ์ํ/์๋ต ์ฝ๋ ์ ๋ฆฌ (0) | 2023.02.02 |
[๋คํธ์ํฌ] REST, REST API, RESTful ์์๋ณด๊ธฐ (0) | 2023.02.01 |