HTTP 1.1, 2, 3

2024. 8. 12.

cloudflare ๋ฌธ์„œ๋ฅผ ์˜ฎ๊ธด ๊ธ€์ž…๋‹ˆ๋‹ค.

[[HTTP]] ๋Š” ํ•˜์ดํผํ…์ŠคํŠธ ์ „์†ก ํ”„๋กœํ† ์ฝœ์„ ์˜๋ฏธํ•˜๋ฉฐ ๊ฑฐ์˜ ๋ชจ๋“  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ธฐ์ดˆ์ด๋‹ค. ๋ณด๋‹ค ๊ตฌ์ฒด์ ์œผ๋กœ, HTTP๋Š” ์ปดํ“จํ„ฐ์™€ ์„œ๋ฒ„๊ฐ€ ์ •๋ณด๋ฅผ ์š”์ฒญํ•˜๊ณ  ๋ณด๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋…ธํŠธ๋ถ์—์„œ cloudflare.com ํƒ์ƒ‰ํ•˜๋ฉด ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ํŽ˜์ด์ง€์— ํ‘œ์‹œ๋˜๋Š” ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•ด Cloudflare ์„œ๋ฒ„์— HTTP ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ Cloudflare ์„œ๋ฒ„์—์„œ๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œํ•˜๋Š” ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€, ์„œ์‹๊ณผ ํ•จ๊ป˜ HTTP ์‘๋‹ต์„ ๋ณด๋‚ธ๋‹ค.

HTTP/1.1

HTTP์˜ ์ฒซ ๋ฒˆ์งธ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฒ„์ „์€ 1997๋…„์— ๋งŒ๋“ค์–ด์กŒ๋‹ค. ์—ฌ๋Ÿฌ ๋‹จ๊ณ„์˜ ๊ฐœ๋ฐœ์„ ๊ฑฐ์ณค์œผ๋ฏ€๋กœ ์ด ์ฒซ ๋ฒˆ์งธ ๋ฒ„์ „์˜ HTTP๋Š” HTTP/1.1์ด๋ผ๊ณ  ๋ถˆ๋ ธ๋‹ค. ์ด ๋ฒ„์ „์€ ์›น์—์„œ ์•„์ง๋„ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค.

HTTP/2

2015๋…„์—๋Š” HTTP/2๋ผ๋Š” ์ƒˆ๋กœ์šด ๋ฒ„์ „์˜ HTTP๊ฐ€ ๋งŒ๋“ค์–ด์กŒ๋‹ค. HTTP/2๋Š” HTTP/1.1 ์ œ์ž‘์ž๊ฐ€ ์˜ˆ์ƒํ•˜์ง€ ๋ชปํ•œ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค. ํŠนํžˆ HTTP/2๋Š” HTTP/1.1๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ด๋‹ค. HTTP/2๊ฐ€ ๋” ๋น ๋ฅธ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋Š” ๋กœ๋“œ ํ”„๋กœ์„ธ์Šค ์ค‘์— ์ฝ˜ํ…์ธ ์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

HTTP/2์˜ ์šฐ์„  ์ˆœ์œ„ ์ง€์ •

๐Ÿง‘โ€๐Ÿ’ป

์šฐ์„  ์ˆœ์œ„ ์ง€์ •

์›น ์„ฑ๋Šฅ์˜ ๋งฅ๋ฝ์—์„œ ์šฐ์„ ์ˆœ์œ„๋Š” ์ฝ˜ํ…์ธ ๊ฐ€ ๋กœ๋“œ๋˜๋Š” ์ˆœ์„œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.์‚ฌ์šฉ์ž๊ฐ€ ๋‰ด์Šค ์›น ์‚ฌ์ดํŠธ๋ฅผ ๋ฐฉ๋ฌธํ•˜์—ฌ ๊ธฐ์‚ฌ๋กœ ์ด๋™ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.๊ธฐ์‚ฌ ์ƒ๋‹จ์˜ ์‚ฌ์ง„์ด ๋จผ์ € ๋กœ๋“œ๋˜์–ด์•ผ ํ• ๊นŒ์š”?๊ธฐ์‚ฌ์˜ ํ…์ŠคํŠธ๊ฐ€ ๋จผ์ € ๋กœ๋“œ๋˜์–ด์•ผ ํ• ๊นŒ์š”?๋ฐฐ๋„ˆ ๊ด‘๊ณ ๊ฐ€ ๋จผ์ € ๋กœ๋“œ๋˜์–ด์•ผ ํ• ๊นŒ์š”?

์šฐ์„ ์ˆœ์œ„๋Š” ์›น ํŽ˜์ด์ง€์˜ ๋กœ๋“œ ์‹œ๊ฐ„์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํฐ JavaScript ํŒŒ์ผ๊ณผ ๊ฐ™์€ ํŠน์ • ๋ฆฌ์†Œ์Šค๋Š” ๋จผ์ € ๋กœ๋“œํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ํŽ˜์ด์ง€์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์ด ๋กœ๋“œ๋˜์ง€ ์•Š๋„๋ก ์ฐจ๋‹จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ Œ๋”๋ง ์ฐจ๋‹จ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ ๋กœ๋“œ๋˜๋Š” ๊ฒฝ์šฐ, ๋” ๋งŽ์€ ํŽ˜์ด์ง€๋ฅผ ํ•œ ๋ฒˆ์— ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด๋Ÿฌํ•œ ํŽ˜์ด์ง€ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋กœ๋“œ๋˜๋Š” ์ˆœ์„œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ๊ฐ„์„ ์ธ์‹ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ๋ฐฐํ›„์˜ ์ฝ˜ํ…์ธ (์˜ˆ: CSS ํŒŒ์ผ) ๋˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ฆ‰์‹œ ๋ณผ ์ˆ˜ ์—†๋Š” ์ฝ˜ํ…์ธ (์˜ˆ: ํŽ˜์ด์ง€ ํ•˜๋‹จ์˜ ๋ฐฐ๋„ˆ ๊ด‘๊ณ )๋งŒ ๋จผ์ € ๋กœ๋“œ๋˜๋ฉด ์‚ฌ์šฉ์ž๋Š” ํŽ˜์ด์ง€๊ฐ€ ์ „ํ˜€ ๋กœ๋“œ๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ์ƒ๋‹จ์˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ฝ˜ํ…์ธ ๊ฐ€ ๋จผ์ € ๋กœ๋“œ๋˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๋Š” ํŽ˜์ด์ง€๊ฐ€ ๋” ๋นจ๋ฆฌ ๋กœ๋“œ๋˜๋Š” ๊ฒƒ์œผ๋กœ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.

HTTP/2์—์„œ๋Š” ๊ฐ€์ค‘์น˜ ์šฐ์„ ์ˆœ์œ„ ์ง€์ •์ด๋ผ๋Š” ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ๋งค๋ฒˆ ๋จผ์ € ๋กœ๋“œํ•  ํŽ˜์ด์ง€ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. HTTP/2์—์„œย ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›น ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•˜๋ฉด ์„œ๋ฒ„๋Š” ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ํด๋ผ์ด์–ธํŠธ์— ์ฐจ๋ก€๋กœ ๋ณด๋‚ด๋Š” ๋Œ€์‹  ํ•œ ๋ฒˆ์— ๋ณด๋‚ธ๋‹ค. ์ด ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐฉ๋ฒ•์„ ๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ์ด๋ผ๊ณ  ํ•œ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์ด๋Ÿฌํ•œ ๊ฐ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์— ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ€์ค‘์น˜ ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ๊ฐ’์€ ํด๋ผ์ด์–ธํŠธ์— ๋จผ์ € ๋ Œ๋”๋งํ•  ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ์•Œ๋ ค์ค€๋‹ค.

๐Ÿ–‹๏ธ

์˜ˆ์‹œ)

Alice๊ฐ€ ์นœ๊ตฌ Bob์ด ์“ด ์†Œ์„ค์„ ์ฝ๊ณ  ์‹ถ์–ดํ•˜์ง€๋งŒ, Alice์™€ Bob์€ ์ผ๋ฐ˜ ๋ฉ”์ผ์„ ํ†ตํ•ด์„œ๋งŒ ์˜์‚ฌ์†Œํ†ตํ•œ๋‹ค๊ณ  ์ƒ์ƒํ•ด ๋ณด์„ธ์š”. Alice๋Š” Bob์—๊ฒŒ ํŽธ์ง€๋ฅผ ๋ณด๋‚ด ์†Œ์„ค์„ ๋ณด๋‚ด๋‹ฌ๋ผ๊ณ  ๋ถ€ํƒํ•ฉ๋‹ˆ๋‹ค. Bob์€ HTTP/1.1 ์Šคํƒ€์ผ์ด๋ผ๋Š” ์†Œ์„ค์„ ๋ณด๋‚ด๊ธฐ๋กœ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. Bob์€ ํ•œ ๋ฒˆ์— ํ•œ ์žฅ์”ฉ ์šฐํŽธ์œผ๋กœ ๋ณด๋‚ด๊ณ , Alice๋กœ๋ถ€ํ„ฐ ์ด์ „ ์žฅ์„ ๋ฐ›์•˜๋‹ค๋Š” ๋‹ต์žฅ์„ ๋ฐ›์€ ํ›„์—๋งŒ ๋‹ค์Œ ์žฅ์„ ์šฐํŽธ์œผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ด ์ฝ˜ํ…์ธ  ์ „๋‹ฌ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด Alice๊ฐ€ Bob์˜ ์†Œ์„ค์„ ์ฝ๋Š” ๋ฐ๋Š” ๋ช‡ ์ฃผ๊ฐ€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

์ด์ œ Bob์ด Alice์—๊ฒŒ ์ž์‹ ์˜ ์†Œ์„ค HTTP/2 ์Šคํƒ€์ผ์„ ๋ณด๋‚ด๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค๊ณ  ์ƒ์ƒํ•ด ๋ณด์„ธ์š”. ์ด ๊ฒฝ์šฐ Bob์€ ์†Œ์„ค์˜ ๊ฐ ์žฅ์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ๋ณด๋‚ด์ง€๋งŒ(์šฐํŽธ ์„œ๋น„์Šค์˜ ํฌ๊ธฐ ์ œํ•œ ๋‚ด์—์„œ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด), ๋™์‹œ์— ๋ณด๋ƒ…๋‹ˆ๋‹ค. Bob์€ ๋˜ํ•œ ๊ฐ ์žฅ์— 1์žฅ, 2์žฅ ๋“ฑ์˜ ๋ฒˆํ˜ธ๋ฅผ ๋งค๊น๋‹ˆ๋‹ค. ์ด์ œ Alice๋Š” ์†Œ์„ค์„ ํ•œ๊บผ๋ฒˆ์— ๋ฐ›๊ณ  ์ ๋‹นํ•œ ์‹œ๊ฐ„์— ์˜ฌ๋ฐ”๋ฅธ ์ˆœ์„œ๋กœ ์กฐ๋ฆฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฑ•ํ„ฐ๊ฐ€ ๋ˆ„๋ฝ๋œ ๊ฒฝ์šฐ ํŠน์ • ์ฑ•ํ„ฐ๋ฅผ ์š”์ฒญํ•˜๋Š” ๋น ๋ฅธ ๋‹ต์žฅ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์™„๋ฃŒ๋˜๊ณ , Alice๋Š” ๋‹จ ๋ฉฐ์น  ๋งŒ์— ์†Œ์„ค์„ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

HTTP/2์—์„œ๋Š” Bob์ด Alice์—๊ฒŒ ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ์žฅ์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•œ ๋ฒˆ์— ์ „์†ก๋ฉ๋‹ˆ๋‹ค. Bob๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ฐœ๋ฐœ์ž๋Š” HTTP/2์—์„œ ๊ฐ ์žฅ์— ๋ฒˆํ˜ธ๋ฅผ ๋งค๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์›น ํŽ˜์ด์ง€์˜ ํ…์ŠคํŠธ, CSS ํŒŒ์ผ, JavaScript, ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์— ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋Š” ๊ฒƒ ์ค‘ ์–ด๋Š ๊ฒƒ์„ ๋จผ์ € ๋ณด๋‚ผ์ง€ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

HTTP/2 ์™€ HTTP/1.1์˜ ์ฐจ์ด์ 

๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ

HTTP/1.1์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐจ๋ก€๋กœ ๋กœ๋“œํ•˜๋ฏ€๋กœ ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋กœ๋“œํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ๊ทธ ๋’ค์— ์žˆ๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๊ฐ€ ์ฐจ๋‹จ๋œ๋‹ค.์ด์™€๋Š” ๋Œ€์กฐ์ ์œผ๋กœ, HTP/2๋Š” ๋‹จ์ผย [[TCP]]ย ์—ฐ๊ฒฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ•œ ๋ฆฌ์†Œ์Šค ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ฐจ๋‹จ๋˜์ง€ ์•Š๋Š”๋‹ค.HTTP/2๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ด์ง„ ์ฝ”๋“œ ๋ฉ”์‹œ์ง€๋กœ ๋ถ„ํ• ํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ ์ด์ง„ ๋ฉ”์‹œ์ง€๊ฐ€ ์†ํ•œ ์ŠคํŠธ๋ฆผ์„ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ์ด๋Ÿฌํ•œ ๋ฉ”์‹œ์ง€์— ๋ฒˆํ˜ธ๋ฅผ ๋งค๊ฒจ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์„œ๋ฒ„ ํ‘ธ์‹œ

์ผ๋ฐ˜์ ์œผ๋กœ ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ํด๋ผ์ด์–ธํŠธ ์žฅ์น˜์— ์ฝ˜ํ…์ธ ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.๊ทธ๋Ÿฌ๋‚˜ ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•ด์•ผ ํ•˜๋Š” ์ˆ˜์‹ญ ๊ฐœ์˜ ๊ฐœ๋ณ„ ๋ฆฌ์†Œ์Šค๋ฅผ ํฌํ•จํ•˜๋Š” ์ตœ์‹  ์›น ํŽ˜์ด์ง€์—์„œ๋Š” ํ•ญ์ƒ ์‹ค์šฉ์ ์ธ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.HTTP/2๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•˜๊ธฐ ์ „์— ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์— ์ฝ˜ํ…์ธ ๋ฅผ โ€œํ‘ธ์‹œโ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค.์„œ๋ฒ„๋Š” ๋˜ํ•œ Bob์ด ๋ชจ๋“  ๊ฒƒ์„ ๋ณด๋‚ด๊ธฐ ์ „์— Alice์—๊ฒŒ ์†Œ์„ค์˜ ๋ชฉ์ฐจ๋ฅผ ๋ณด๋‚ธ ๊ฒฝ์šฐ์™€ ๊ฐ™์ด, ์˜ˆ์ƒ๋˜๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ํ‘ธ์‹œํ•œ ๋‚ด์šฉ์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์•Œ๋ ค์ฃผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ธ๋‹ค.

ํ—ค๋” ์••์ถ•

์ž‘์€ ํŒŒ์ผ์€ ํฐ ํŒŒ์ผ๋ณด๋‹ค ๋” ๋นจ๋ฆฌ ๋กœ๋“œ๋œ๋‹ค. ์›น ์„ฑ๋Šฅ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด HTTP/1.1 ๋ฐ HTTP/2๋Š” ๋ชจ๋‘ HTTP ๋ฉ”์‹œ์ง€๋ฅผ ์••์ถ•ํ•˜์—ฌ ๋” ์ž‘๊ฒŒ ๋งŒ๋“ ๋‹ค.๊ทธ๋Ÿฌ๋‚˜ HTTP/2๋Š” HTTP ํ—ค๋” ํŒจํ‚ท์—์„œ ์ค‘๋ณต ์ •๋ณด๋ฅผ ์ œ๊ฑฐํ•˜๋Š” HPACK์ด๋ผ๋Š” ๊ณ ๊ธ‰ ์••์ถ• ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ชจ๋“  HTTP ํŒจํ‚ท์—์„œ ๋ช‡ ๋ฐ”์ดํŠธ๊ฐ€ ์ œ๊ฑฐ๋œ๋‹ค. ๋‹จ์ผ ์›น ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ•˜๋Š” ๋ฐ ๊ด€๋ จ๋˜๋Š” HTTP ํŒจํ‚ท์˜ ์–‘์„ ๊ณ ๋ คํ•  ๋•Œ, ์ด๋Ÿฌํ•œ ๋ฐ”์ดํŠธ๋Š” ๋น ๋ฅด๊ฒŒ ํ•ฉ์‚ฐ๋˜์–ด ๋กœ๋“œ ์†๋„๊ฐ€ ๋นจ๋ผ์ง„๋‹ค.

HTTP/3

HTTP/3์€ ์ƒˆ๋กœ์šด ๊ฐœ๋ฐœ ํ‘œ์ค€์œผ๋กœ, ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„๊ฐ€ ํ†ต์‹ ํ•˜๋Š” ๋ฐฉ์‹์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฉฐ, ์„ฑ๋Šฅ, ์•ˆ์ •์„ฑ, ๋ณด์•ˆ ๋“ฑ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ํฌ๊ฒŒ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ๋‹ค.

HTTP/3๋Š” 2015๋…„์—ย HTTP/2ย ์Šน์ธ๋œ ์ดํ›„ ํ•˜์ดํผํ…์ŠคํŠธ ์ „์†ก ํ”„๋กœํ† ์ฝœ์˜ ์ฒซ ๋ฒˆ์งธ ์ฃผ์š” ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค.

HTTP/3์˜ ์ค‘์š”ํ•œ ์ฐจ์ด์ ์€ ์ƒˆ๋กœ์šด ์ „์†ก ํ”„๋กœํ† ์ฝœ์ธ QUIC์—์„œ ์‹คํ–‰๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. QUIC์€ ์‚ฌ๋žŒ๋“ค์ด ํ•˜๋ฃจ ์ข…์ผ ์ด๋™ํ•˜๋ฉด์„œ ๋Š์ž„์—†์ด ํ•˜๋‚˜์˜ ๋„คํŠธ์›Œํฌ์—์„œ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ๋กœ ์ „ํ™˜ํ•˜๋Š” ์Šค๋งˆํŠธํฐ์„ ํœด๋Œ€ํ•˜๋Š” ๋ชจ๋ฐ”์ผ ์ค‘์‹ฌ์˜ ์ธํ„ฐ๋„ท ์‚ฌ์šฉ์„ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ๋‹ค. ์ตœ์ดˆ์˜ ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ์ด ๊ฐœ๋ฐœ๋  ๋‹น์‹œ์—๋Š” ๊ธฐ๊ธฐ์˜ ํœด๋Œ€์„ฑ์ด ๋–จ์–ด์ง€๊ณ  ๋„คํŠธ์›Œํฌ๋ฅผ ์ž์ฃผ ์ „ํ™˜ํ•˜์ง€ ์•Š์•˜๋‹ค.

๐Ÿง‘โ€๐Ÿ’ป

QUIC

QUIC ํ”„๋กœํ† ์ฝœ์€ 2012๋…„์— Google์—์„œ ๊ฐœ๋ฐœํ–ˆ์œผ๋ฉฐ, ๋ฒค๋” ์ค‘๋ฆฝ์ ์ธ ํ‘œ์ค€ ๋‹จ์ฒด์ธ ์ธํ„ฐ๋„ท ์—”์ง€๋‹ˆ์–ด๋ง ํƒœ์Šคํฌํฌ์Šค(IETF)์—์„œ ์ƒˆ๋กœ์šด HTTP/3 ํ‘œ์ค€์„ ๋งŒ๋“ค๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด์„œ ์ฑ„ํƒ๋˜์—ˆ๋‹ค. ์ „ ์„ธ๊ณ„ ์ „๋ฌธ๊ฐ€๋“ค์˜ ์ž๋ฌธ์„ ๊ฑฐ์ณ IETF๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•˜์—ฌ ์ž์ฒด ๋ฒ„์ „์˜ QUIC์„ ๊ฐœ๋ฐœํ–ˆ๋‹ค.

HTTPS ํ”„๋กœํ† ์ฝœ์€ TCP/IP์™€ TLS๋ ˆ์ด์–ด๊ฐ€ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ์–ด์„œ ๋ถˆํ•„์š”ํ•œ ๋ผ์šด๋“œ ํŠธ๋ฆฝ ๋”œ๋ ˆ์ด(RTT)๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”๋ฐ, QUIC์€ ์ด ๊ณผ์ •์„ UDP ์œ„์—์„œ ํ•œ ๋ฒˆ์˜ ๋ผ์šด๋“œ-ํŠธ๋ฆฝ์œผ๋กœ ๊ตฌํ˜„ํ•ด์„œ ํšจ์œจ์„ฑ์„ ๋†’์˜€๋‹ค.

# QUIC ํ”„๋กœํ† ์ฝœ | ๊ตฌ๊ธ€ ๋˜ ๋„ˆ์•ผ?

QUIC์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์€ HTTP/3๊ฐ€ ์ „์†ก ์ œ์–ด ํ”„๋กœํ† ์ฝœ([[TCP]])์ด ์•„๋‹Œ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๊ทธ๋žจ ํ”„๋กœํ† ์ฝœ([[UDP]])์— ์˜์กดํ•œ๋‹ค๋Š” ์˜๋ฏธ๋‹ค. UDP๋กœ ์ „ํ™˜ํ•˜๋ฉด ์˜จ๋ผ์ธ ๊ฒ€์ƒ‰ ์‹œ ์—ฐ๊ฒฐ ์†๋„๊ฐ€ ๋นจ๋ผ์ง€๊ณ  ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ด ํ–ฅ์ƒ๋œ๋‹ค.

HTTP/3์ด ํ•„์š”ํ•œ ์ด์œ 

QUIC๋Š” HTTP/2์˜ ๊ฐ€์žฅ ํฐ ๋‹จ์  ๋ช‡ ๊ฐ€์ง€๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ด๋‹ค.

  • ์Šค๋งˆํŠธํฐ์ด WiFi์—์„œ ์…€๋ฃฐ๋Ÿฌ ๋ฐ์ดํ„ฐ๋กœ ์ „ํ™˜๋  ๋•Œ(์˜ˆ: ์ง‘์ด๋‚˜ ์‚ฌ๋ฌด์‹ค์„ ๋– ๋‚  ๋•Œ) ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ๊ฐœ๋ฐœ
  • ํŒจํ‚ท ์†์‹ค์˜ ์˜ํ–ฅ ๊ฐ์†Œ - ํ•˜๋‚˜์˜ ์ •๋ณด ํŒจํ‚ท์ด ๋ชฉ์ ์ง€์— ๋„๋‹ฌํ•˜์ง€ ๋ชปํ•˜๋ฉด ๋” ์ด์ƒ ๋ชจ๋“  ์ •๋ณด ์ŠคํŠธ๋ฆผ์„ ์ฐจ๋‹จํ•˜์ง€ ์•Š๋Š”๋‹ค.(โ€œํ—ค๋“œ ์˜ค๋ธŒ ๋ผ์ธ ์ฐจ๋‹จโ€์ด๋ผ๊ณ  ์•Œ๋ ค์ง„ ๋ฌธ์ œ).
๐Ÿง‘โ€๐Ÿ’ป

HOL(Head-of-Line Blocking)

์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํ‚น์—์„œ HOL ์ฐจ๋‹จ(Head-of-Line Blocking)์€ ํŒจํ‚ท ๋Œ€๊ธฐ์—ด์ด ๋Œ€๊ธฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ํŒจํ‚ท์— ์˜ํ•ด ์ง€์—ฐ๋  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์„ฑ๋Šฅ ์ œํ•œ ํ˜„์ƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ž…๋ ฅ ๋ฒ„ํผ๋ง ๋„คํŠธ์›Œํฌ ์Šค์œ„์น˜, ์ˆœ์„œ ์™ธ ์ „์†ก ๋ฐ HTTP ํŒŒ์ดํ”„๋ผ์ด๋‹์˜ ์—ฌ๋Ÿฌ ์š”์ฒญ์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

wikipedia - Head-of-line_blocking

๊ธฐํƒ€ ํ˜œํƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋” ๋น ๋ฅธ ์—ฐ๊ฒฐ ์„ค์ •:ย QUIC๋ฅผ ์‚ฌ์šฉํ•˜๋ฉดย TLSย ๋ฒ„์ „ ํ˜‘์ƒ์ด ์•”ํ˜ธํ™” ๋ฐ ์ „์†กย ํ•ธ๋“œ์…ฐ์ดํฌ์™€ ๋™์‹œ์— ์ด๋ฃจ์–ด์ง„๋‹ค.
  • ์ œ๋กœย ์™•๋ณต ์‹œ๊ฐ„(0-RTT):ย ์ด๋ฏธ ์—ฐ๊ฒฐ๋œ ์„œ๋ฒ„์˜ ๊ฒฝ์šฐ ํด๋ผ์ด์–ธํŠธ๋Š” ํ•ธ๋“œ์…ฐ์ดํฌ ์š”๊ตฌ ์‚ฌํ•ญ(ํ†ต์‹  ๋ฐฉ๋ฒ•์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋กœ๋ฅผ ์ธ์ •ํ•˜๊ณ  ํ™•์ธํ•˜๋Š” ๊ณผ์ •)์„ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ๋‹ค.
  • ๋ณด๋‹ค ํฌ๊ด„์ ์ธ ์•”ํ˜ธํ™”:ย QUIC์˜ ์ƒˆ๋กœ์šด ํ•ธ๋“œ์…ฐ์ดํฌ ์ ‘๊ทผ ๋ฐฉ์‹์€ HTTP/2์—์„œ ๋Œ€ํญ ์—…๊ทธ๋ ˆ์ด๋“œ๋œย ์•”ํ˜ธํ™”๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณตํ•˜๋ฉฐ ๊ณต๊ฒฉ ์œ„ํ—˜์„ ์™„ํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค.

๊ธฐ๋ณธ์  ์•”ํ˜ธํ™”๋ž€?

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์ด ์•„๋‹Œ ์ „์†ก ๊ณ„์ธต ๋‚ด์—์„œ ์•”ํ˜ธํ™”๋ฅผ ์š”๊ตฌํ•˜๋Š” ๊ฒƒ์€ ๋ณด์•ˆ์— ์ค‘์š”ํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š”๋‹ค. ์ด๋Š” ์—ฐ๊ฒฐ์ด ํ•ญ์ƒ ์•”ํ˜ธํ™”๋œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์ด์ „์— HTTPS์—์„œ๋Š” ์•”ํ˜ธํ™”์™€ ์ „์†ก ๊ณ„์ธต ์—ฐ๊ฒฐ์ด ๋ณ„๋„๋กœ ์ด๋ฃจ์–ด์กŒ๋‹ค. TCP ์—ฐ๊ฒฐ์€ ์•”ํ˜ธํ™”๋˜๊ฑฐ๋‚˜ ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ์—ˆ์œผ๋ฉฐ, TCP ํ•ธ๋“œ์…ฐ์ดํฌ์™€ TLS ํ•ธ๋“œ์…ฐ์ดํฌ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ด๋ฒคํŠธ์˜€๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ QUIC๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ „์†ก ๊ณ„์ธต์—์„œ ์•”ํ˜ธํ™”๋œ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋ฏ€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต ๋ฐ์ดํ„ฐ๊ฐ€ ํ•ญ์ƒ ์•”ํ˜ธํ™”๋œ๋‹ค.

QUIC๋Š” ๋‘ ๋ฒˆ์˜ ํ•ธ๋“œ์…ฐ์ดํฌ๋ฅผ ํ•˜๋‚˜์˜ ์ž‘์—…์œผ๋กœ ๊ฒฐํ•ฉํ•˜์—ฌ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์ „์— ํ•œ ๋ฒˆ์˜ ํ•ธ๋“œ์…ฐ์ดํฌ๋งŒ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•ด์„œ ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ์ค„์–ด๋“ ๋‹ค. ๋˜ํ•œ ํŒจํ‚ท ๋ฒˆํ˜ธ์™€ ํ—ค๋”์˜ ์ผ๋ถ€ ๋‹ค๋ฅธ ๋ถ€๋ถ„์„ ํฌํ•จํ•˜์—ฌ ๊ฐ ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์‚ฌ์šฉ์ž ํ–‰๋™์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ณต๊ฒฉ์ž๊ฐ€ ์˜ ์ž…์ˆ˜ํ•˜์ง€ ๋ชปํ•˜๋„๋ก ๋ณดํ˜ธํ•œ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ HTTP/2์—๋Š” ํฌํ•จ๋˜์ง€ ์•Š์•˜๋‹ค. ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋ฉด ๊ณต๊ฒฉ์ž๊ฐ€ ์‚ฌ์šฉ์ž ํ–‰๋™์— ๋Œ€ํ•œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ •๋ณด๋ฅผ ์†์— ๋„ฃ์ง€ ๋ชปํ•˜๋„๋ก ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ๋‹ค.

HTTP๋Š” ์š”์ฒญ๊ณผ ์‘๋‹ต์—ย ์ผ๋ฐ˜ ํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์ด๋Š” ํ†ต์‹ ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ด๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ณด์•ˆ์— ๋ถ€์ •์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์•”ํ˜ธํ™”ํ•˜๋ฉด ๋ชจ๋‘๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธํ•˜๊ณ  ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค.