์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- BFS
- cs #๋คํธ์ํฌ
- ์ ์ง์ฝํฌ๋น
- ๋ฉ๋ชจ๋ฆฌ
- ์ธ์ฌ์ด๋์์
- ๋ฆฌ์กํธ
- ์๊ณ ๋ฆฌ์ฆ
- react-query
- javascript
- ์ ๋ฐ๋ฏธ
- react
- #ํ๋ก์ ํธ์บ ํ #ํ๋ก์ ํธ์บ ํํ๊ธฐ #์ ๋ฐ๋ฏธ #์ค๋์ดํผํฉํ ๋ฆฌ #์ ์ง์ฝํฌ๋น #์ธ์ฌ์ด๋์์ #IT๊ฐ๋ฐ์บ ํ #๊ฐ๋ฐ์๋ถํธ์บ ํ #๋ฆฌ์กํธ #react #๋ถํธ์บ ํ #๋ฆฌ์กํธ์บ ํ
- ์๋ฐ์คํฌ๋ฆฝํธ
- html
- CS
- IT๊ฐ๋ฐ์บ ํ
- ํ๋ก๊ทธ๋๋จธ์ค
- ์ค๋์ดํผํฉํ ๋ฆฌ
- React.js
- ํ๋ก์ธ์ค
- ํด์
- Algorithm
- ip
- ํ์ ์คํฌ๋ฆฝํธ
- ํ๋ก์ ํธ์บ ํ
- ๊ฐ๋ฐ์๋ถํธ์บ ํ
- typescript
- ์ค๋ ๋
- ๋คํธ์ํฌ
- App Runner
- Today
- Total
Bin's Blog
์ค๋์ CS(HTTP- 1.0/1.1/2/3) ๋ณธ๋ฌธ
1๏ธโฃ HTTP/1.0
๐ HTTP/1.0์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ ์ฐ๊ฒฐ๋น ํ๋์ ์์ฒญ์ ์ฒ๋ฆฌํ๋๋ก ์ค๊ณ๋์๋ค. ์ด๋ RTT(ํจํท์ด ๋ชฉ์ ์ง์ ๋๋ฌํ๊ณ ๋์ ์ถ๋ฐ์ง๋ก ๋์์ค๊ธฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด๋ฉฐ ํจํท ์๋ณต์๊ฐ)
๐ ์๋ฒ๋ก๋ถํฐ ํ์ผ์ ๊ฐ์ ธ์ฌ ๋๋ง๋ค TCP์ 3-way-handshake๋ฅผ ๊ณ์ํด์ ์ด์ด์ผ ํ๊ธฐ ๋๋ฌธ์ RTT๊ฐ ์ฆ๊ฐํ๋ ๋จ์ ์ด ์๋ค.
๐ค TCP๋?(์ง๋ ๊ธ ๋ณด๊ธฐ)
์ค๋์ CS(๋คํธ์ํฌ - TCP/IP 4๊ณ์ธต ๋ชจ๋ธ(์ ์ก๊ณ์ธต))
์ ์ก๊ณ์ธต์ ์ก์ ์์ ์์ ์๋ฅผ ์ฐ๊ฒฐํ๋ ํต์ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ฉฐ ์ฐ๊ฒฐ ์งํฅ ๋ฐ์ดํฐ ์คํธ๋ฆผ ์ง์, ์ ๋ขฐ์ฑ, ํ๋ฆ ์ ์ด๋ฅผ ์ ๊ณตํ ์ ์์ผ๋ฉฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ธํฐ๋ท ๊ณ์ธต ์ฌ์ด์ ๋ฐ์ดํฐ๊ฐ ์ ๋ฌ๋
hobin49.tistory.com
๐ ๏ธ RTT์ ์ฆ๊ฐ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ
๐ ๋งค๋ฒ ์ฐ๊ฒฐํ ๋๋ง๋ค RTT๊ฐ ์ฆ๊ฐํ๋ ์๋ฒ์ ๋ถ๋ด์ด ๋ง์ด๊ฐ๊ณ ์ฌ์ฉ์ ์๋ต ์๊ฐ์ด ๊ธธ์ด์ก์ต๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด๋ฏธ์ง ์คํ๋ฆฌํ , ์ฝ๋ ์์ถ, ์ด๋ฏธ์ง Base64 ์ธ์ฝ๋ฉ์ ์ฌ์ฉํ๋ค.
(1) ์ด๋ฏธ์ง ์คํ๋ฆฌํ : ๋ง์ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ ๋ฐ๊ฒ ๋๋ฉด ๊ณผ๋ถํ๊ฐ ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋ง์ ์ด๋ฏธ์ง๊ฐ ํฉ์ณ ์๋ ํ๋์ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ ๋ฐ๋๋ค.
(2) ์ฝ๋ ์์ถ: ์ฝ๋๋ฅผ ์์ถํด์ ๊ฐํ ๋ฌธ์, ๋น์นธ์ ์์ ์ ์ฝ๋์ ํฌ๊ธฐ๋ฅผ ์ต์ํํ๋ ๋ฐฉ๋ฒ
(3) ์ด๋ฏธ์ง Base64 ์ธ์ฝ๋ฉ: ์ด๋ฏธ์ง ํ์ผ์ 64์ง๋ฒ์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด๋ก ์ธ์ฝ๋ฉํ๋ ๋ฐฉ๋ฒ, ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉ์ ์๋ฒ์์ ์ฐ๊ฒฐ์ ์ด๊ณ ์ด๋ฏธ์ง์ ๋ํด ์๋ฒ์ HTTP์ ์์ฒญํ ํ์๊ฐ ์๋ค.
2๏ธโฃ HTTP/1.1
๐ ํ ๋จ ๊ณ ์งํํ๋ค. ๋งค๋ฒ TCP ์ฐ๊ฒฐ์ ํ๋ ๊ฒ์ด ์๋๋ผ ํ ๋ฒ TCP ์ด๊ธฐํ๋ฅผ ํ ์ดํ์ keep-alive๋ผ๋ ์ต์ ์ผ๋ก ์ฌ๋ฌ ๊ฐ์ ํ์ผ์ ์ก์์ ํ ์ ์๊ฒ ๋ฐ๋์๋ค.
๐ ํ ๋ฒ TCP 3-way-handshake๊ฐ ๋ฐ์ํ๋ฉด ๊ทธ๋ค์๋ถํฐ ๋ฐ์ํ์ง ์๋๋ค. ํ์ง๋ง ๋ฌธ์ ์์ ํฌํจ๋ ๋ค์์ ๋ฆฌ์์ค๋ฅผ ์ฒ๋ฆฌํ๋ ค๋ฉด ์์ฒญํ ๋ฆฌ์์ค ๊ฐ์์ ๋น๋กํด์ ๋๊ธฐ ์๊ฐ์ด ๊ธธ์ด์ง๋ ๋จ์ ์ด ์๋ค.
๐ HTTP/1.1์ ํน์ง
(1) HOL Blocking: Head Of Line Blocking์ ๋คํธ์ํฌ์์ ๊ฐ์ ํ์ ์๋ ํจํท์ด ๊ทธ ์ฒซ ๋ฒ์งธ ํจํท์ ์ง์ฐ๋ ๋ ๋ฐ์ํ๋ ์ฑ๋ฅ ์ ํ ํ์์ ๋งํ๋ค.
์๋ฅผ ๋ค์ด, image.jpg๊ฐ ๋๋ฆฌ๊ฒ ๋ฐ์์ง๋ค๋ฉด ๊ทธ ๋ค์ ์๋ ๊ฒ๋ค์ด ๋๊ธฐํ๊ฒ ๋๋ฉฐ ๋ค์ด๋ก๋๊ฐ ์ง์ฐ๋๋ ์ํ๊ฐ ๋๋ค.
(2) ๋ฌด๊ฑฐ์ด ํค๋ ๊ตฌ์กฐ: HTTP/1.1์ ํค๋์๋ ์ฟ ํค ๋ฑ ๋ง์ ๋ฉํ๋ฐ์ดํฐ๊ฐ ๋ค์ด ์๊ณ ์์ถ์ด ๋์ง ์์ ๋ฌด๊ฑฐ์ ๋ค.
3๏ธโฃ HTTP/2
๐ HTTP/2๋ SPDY ํ๋กํ ์ฝ์์ ํ์๋ HTTP/1.x๋ณด๋ค ์ง์ฐ ์๊ฐ์ ์ค์ด๊ณ ์๋ต ์๊ฐ์ ๋ ๋น ๋ฅด๊ฒ ํ ์ ์์ผ๋ฉฐ ๋ฉํฐํ๋ ์ฑ, ํค๋ ์์ถ, ์๋ถ ํธ์, ์์ฒญ์ ์ฐ์ ์์ ์ฒ๋ฆฌ๋ฅผ ์ง์ํ๋ ํ๋กํ ์ฝ์ด๋ค.
๐ HTTP/2์ ํน์ง
(1) ๋ฉํฐํ๋ ์ฑ: ์ฌ๋ฌ ๊ฐ์ ์คํธ๋ฆผ(์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ ์ผ๋ จ์ ๋ฐ์ดํฐ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฐ์ดํฐ ํ๋ฆ)์ ์ฌ์ฉํ์ฌ ์ก์์ ํ๋ ๊ฒ, ์ด๋ฅผ ํตํด ํน์ ์คํธ๋ฆผ์ ํจํท์ด ์์ค๋์๋ค๊ณ ํ๋๋ผ๋ ํด๋น ์คํธ๋ฆผ์๋ง ์ํฅ์ ๋ฏธ์น๊ณ ๋๋จธ์ง ์คํธ๋ฆผ์ ๋ฉ์ฉกํ๊ฒ ๋์ํ ์ ์๋ค. ๋ณ๋ ฌ์ ์ธ ์คํธ๋ฆผ and ๋ ๋ฆฝ๋ ํ๋ ์ ์กฐ๊ฐ์ผ๋ก ์ก์์ ํ๋ค. ์ด๋ฅผ ํตํด HOL Blocking์ ํด๊ฒฐํ ์ ์๋ค.
(2) ํค๋ ์์ถ: HTTP/1.x์๋ ํฌ๊ธฐ๊ฐ ํฐ ํค๋๊ฐ ๋ฌธ์ ๊ฐ ์์๋ค. ํํ๋ง ์ฝ๋ฉ ์์ถ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ HPACK ์์ถ ํ์์ ๊ฐ์ง๋ค.
ํํ๋ง ์ฝ๋ฉ์ ๋ฌธ์์ด์ ๋ฌธ์ ๋จ์๋ก ์ชผ๊ฐ ๋น๋์๋ฅผ ์ธ์ด ๋น๋๊ฐ ๋์ ์ ๋ณด๋ ์ ์ ๋นํธ ์๋ฅผ ์ฌ์ฉํ์ฌ ํํํ๊ณ , ๋น๋๊ฐ ๋ฎ์ ์ ๋ณด๋ ๋นํธ ์๋ฅผ ๋ง์ด ์ฌ์ฉํ์ฌ ํํํด์ ์ ์ฒด ๋ฐ์ดํฐ์ ํํ์ ํ์ํ ๋นํธ์์ ์ค์ด๋ ์๋ฆฌ์ด๋ค.
(3) ์๋ฒ ํธ์: HTTP/1.1์์๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์์ฒญ์ ํด์ผ ํ์ผ์ ๋ค์ด๋ก๋ ๋ฐ์ ์ ์์๋ค๋ฉด, HTTP/2๋ ํด๋ผ์ด์ธํธ ์์ฒญ ์์ด ์๋ฒ๊ฐ ๋ฐ๋ก ๋ฆฌ์์ค๋ฅผ ํธ์ํ ์ ์๋ค. html์๋ css๋ js ํ์ผ์ด ํฌํจ๋๊ธฐ ๋ง๋ จ์ธ๋ฐ html์ ์ฝ์ผ๋ฉด์ ๊ทธ ์์ ๋ค์ด ์๋ cssํ์ผ์ ์๋ฒ์์ ํธ์ฌํ์ฌ ํด๋ผ์ด์ธํธ์ ๋จผ์ ์ค ์ ์๋ค.
4๏ธโฃ HTTP/3
๐ HTTP/3์ Word Wide Web์์ ์ ๋ณด๋ฅผ ๊ตํํ๋ ๋ฐ ์ฌ์ฉ๋๋ HTTP์ ์ธ ๋ฒ์งธ ๋ฒ์ ์ด๋ค. QUIC(๋ฒ์ฉ ๋ชฉ์ ์ ์ ์ก ๊ณ์ธต ํต์ ํ๋กํ ์ฝ)์ด๋ผ๋ ๊ณ์ธต ์์์ ๋์๊ฐ๋ฉฐ TCP ๊ธฐ๋ฐ์ด ์๋ UDP ๊ธฐ๋ฐ์ผ๋ก ๋์๊ฐ๋ค. (UDP๋ TCP๋? ๊ธ ์ฐธ๊ณ ํ๊ธฐ)
๐ HTTP/2์์ ์ฅ์ ์ด์๋ ๋ฉํฐํ๋ ์ฑ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ์ด๊ธฐ ์ฐ๊ฒฐ ์ค์ ์ ์ง์ฐ ์๊ฐ ๊ฐ์(TCP๋ฅผ ์ฌ์ฉํ์ง ์์์ ๋ฒ๊ฑฐ๋ก์ด ๊ณผ์ ์๋ต)๋ผ๋ ์ฅ์ ์ด ์๋ค.
๐ QUIC์ ์ฒซ ์ฐ๊ฒฐ ์ค์ ์ 1-RTT๋ง ์์๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ด๋ค ์ ํธ๋ฅผ ํ ๋ฒ ์ฃผ๊ณ , ์๋ฒ๋ ๊ฑฐ๊ธฐ์ ์๋ตํ๊ธฐ๋ง ํ๋ฉด ๋ฐ๋ก ๊ธฐ๋ณธ ํต์ ์ ์์ํ ์ ์๋ค.
๐ QUIC์ ์๋ฐฉํฅ ์ค๋ฅ ์์ ๋ฉ์ปค๋์ฆ(Forward Error Correction)์ด ์ ์ฉ๋๋ค. ์ด๋ ์ ์กํ ํจํท์ด ์์ค๋์๋ค๋ฉด ์์ ์ธก์์ ์๋ฌ๋ฅผ ๊ฒ์ถํ๊ณ ์์ ํ๋ ๋ฐฉ์์ด๋ฉฐ ์ด์ฝํ ๋คํธ์ํฌ ํ๊ฒฝ์์๋ ๋ฎ์ ํจํท ์์ค๋ฅ ์ ์๋ํ๋ค.
'CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ค๋์ CS(์ด์์ฒด์ ์ ์ปดํจํฐ- ์ปดํจํฐ์ ์์) (0) | 2023.08.28 |
---|---|
์ค๋์ CS(์ด์์ฒด์ ์ ์ปดํจํฐ- ์ด์์ฒด์ ์ ์ญํ ๊ณผ ๊ตฌ์กฐ) (0) | 2023.08.25 |
์ค๋์ CS(HTTPS) (0) | 2023.08.18 |
[๋คํธ์ํฌ] REST API๋?(2) ์ฅ๋จ์ , Restful (0) | 2023.07.24 |
[๋คํธ์ํฌ] REST API๋?(1) ๊ตฌ์ฑ์์, ํน์ง (0) | 2023.07.22 |