Computer Science ๐Ÿ“š

[cs] HTTP II - HTTP/1.0, HTTP/1.1, HTTP/2.0, HTTP/3.0 etc.

leejaejae 2024. 7. 8. 16:18

1. HTTP/1.0
2. HTTP/1.1
3. HTTP/2.0
4. HTTP/3.0


1. HTTP/1.0

  • HTML ๋ฌธ์„œ๋งŒ ๋‚ ๋ฆฌ๋Š” HTTP/0.9์™€ ๋‹ค๋ฅด๊ฒŒ ๋‹ค์–‘ํ•œ ํŒŒ์ผ(css, image ๋“ฑ)์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋จ
  • ๋งค๋ฒˆ ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ๋กœ ์„ฑ๋Šฅ ์ €ํ•˜
    • ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ๋•Œ ๋งˆ๋‹ค ์„œ๋ฒ„ ์ธก์—์„œ ์—ฐ๊ฒฐ ๋Š์Œ
    • ์š”์ฒญ ์ปจํ…์ธ ๋งˆ๋‹ค TCP ์„ธ์…˜์„ ๋งบ์–ด์•ผ ํ•จ
  • ์„œ๋ฒ„ ๋ถ€ํ•˜ ๋น„์šฉ ์ƒ์Šน
    • RTT(Round Trip Time) ์ฆ๊ฐ€ : ํŒจํ‚ท์ด ๋ชฉ์ ์ง€์— ๋„๋‹ฌํ•˜๊ณ  ๋‚˜์„œ ๋‹ค์‹œ ์ถœ๋ฐœ์ง€๋กœ ๋Œ์•„์˜ค๊ธฐ๊นŒ์ง€ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด๋ฉฐ ํŒจํ‚ท ์™•๋ณต ์‹œ
  • HTTP 1.0 ํ™˜๊ฒฝ์—์„œ๋Š” ํ•˜๋‚˜์˜ IP์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋„๋ฉ”์ธ์„ ์šด์˜ํ•  ์ˆ˜ ์—†์Œ
  • HTTP 1.0์€ ๊ธฐ๋ณธ์ ์œผ๋กœ Connection ๋‹น ํ•˜๋‚˜์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ
    • ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋™์‹œ ์ „์†ก์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ  ํ•˜๋‚˜์˜ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์ด ์˜จ ํ›„ ๋‹ค์Œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋˜๋Š”๋ฐ,
    • ์ˆ˜ ๋งŽ์€ ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ๋ฆฌ์†Œ์Šค๋“ค์ด ์žˆ๋Š” ์ƒํ™ฉ์—์„œ ์ด๋Ÿฌํ•œ ํŠน์ง•์€ Network Latency๋ฅผ ๋ฐœ์ƒ์‹œํ‚ด
  • HTTP/1.0์—์„œ RTT ๊ฐ์†Œ๋ฅผ ์œ„ํ•ด ์ด๋ฏธ์ง€ ์Šคํ”Œ๋ฆฌํŒ…, ์ฝ”๋“œ ์••์ถ•, base64์ธ์ฝ”๋”ฉ ๋“ฑ ์‹œํ–‰

 

2. HTTP/1.1

1) HTTP/1.0 vs. HTTP/1.1

  • ์š”์ฒญ๋งˆ๋‹ค ๋งค๋ฒˆ TCP ์—ฐ๊ฒฐ์„ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ•œ ๋ฒˆ TCP ์ดˆ๊ธฐํ™”๋ฅผ ํ•œ ์ดํ›„์— keep-alive ์˜ต์…˜์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŒŒ์ผ์„ ์†ก์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋จ
  • HTTP/1.0์—์„œ๋„ keep-alive ์˜ต์…˜์ด ์žˆ์—ˆ์ง€๋งŒ ํ‘œ์ค€ํ™”๊ฐ€ ๋˜์–ด ์žˆ์ง€ ์•Š์•˜๊ณ  HTTP/1.1๋ถ€ํ„ฐ ํ‘œ์ค€ํ™”๋˜์„œ ๊ธฐ๋ณธ ์˜ต์…˜์œผ๋กœ ์„ค์ •๋จ

2) HTTP/1.1 ํŠน์ง•

  • Persistent Connection
    • ์ง€์ •ํ•œ timeout ๋™์•ˆ ์ปค๋„ฅ์…˜์„ ๋‹ซ์ง€ ์•Š๋Š” ๋ฐฉ์‹
    • Persistent ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜์—ฌ ํ•œ ๊ฐœ์˜ TCP ์„ธ์…˜์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปจํ…์ธ  ์š”์ฒญ์ด ๊ฐ€๋Šฅ
    • ์š”์ฒญ ์ปจํ…์ธ ๋งˆ๋‹ค TCP ์„ธ์…˜์„ ๋งบ์–ด์•ผํ•˜๋Š” HTTP 1.0์— ๋ฐ˜ํ•ด HTTP 1.1์€ TCP ์„ธ์…˜ ์ฒ˜๋ฆฌ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๊ณ , ๊ทธ๋งŒํผ ํด๋ผ์ด์–ธํŠธ ์‘๋‹ต์†๋„๊ฐ€ ๊ฐœ์„ ๋จ.
  • Pipelining
    • ํ•˜๋‚˜์˜ ์ปค๋„ฅ์…˜์—์„œ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ์ˆœ์ฐจ์ ์ธ ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ์—ฐ์†์ ์œผ๋กœ ๋ณด๋‚ด ๊ทธ ์ˆœ์„œ์— ๋งž์ถฐ ์‘๋‹ต์„ ๋ฐ›๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ๋ฐฉ์‹ (TCP ์•ˆ์— ๋‘ ๊ฐœ ์ด์ƒ์˜ HTTP ์š”์ฒญ์„ ๋‹ด์Œ)

์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด  HTTP 1.1์€ ๋™์‹œ์— ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์ด์— ๋Œ€ํ•œ ๊ฐ๊ฐ์˜ ์‘๋‹ต์„ ๋ฐ›์•„ ์ฒ˜๋ฆฌ(→ ์‘๋‹ต ์†๋„๋ฅผ ๋†’์ด๊ณ  ํŽ˜์ด์ง€ ๋ทฐ์˜ ์†๋„๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•จ)

 

  • Host Header
    • HTTP 1.0 ํ™˜๊ฒฝ์—์„œ๋Š” ํ•˜๋‚˜์˜ IP์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋„๋ฉ”์ธ์„ ์šด์˜ํ•  ์ˆ˜ ์—†์Œ์— ๋ฐ˜ํ•ด, HTTP 1.1์—์„œ Host ํ—ค๋”์˜ ์ถ”๊ฐ€๋ฅผ ํ†ตํ•ด ๋ฒ„์ธ„์–ผ ํ˜ธ์ŠคํŒ…์ด ๊ฐ€๋Šฅ

 

  • Imporved Authentication Procdure(๊ฐ•๋ ฅํ•œ ์ธ์ฆ ์ ˆ์ฐจ)
    • HTTP 1.1 ์—์„œ๋Š” 2๊ฐœ์˜ ํ—ค๋”(proxy-authentication, proxy-authorization)๊ฐ€ ์ถ”๊ฐ€๋จ
    • ์‹ค์ œ ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„ ์š”๊ตฌํ•˜๋Š” www-authentication ํ—ค๋”๋Š” HTTP 1.0์—์„œ๋ถ€ํ„ฐ ์ง€์›์ด ๋์œผ๋‚˜, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์— ํ”„๋ก์‹œ๊ฐ€ ์œ„์น˜ํ•˜๋Š” ๊ฒฝ์šฐ ํ”„๋ก์‹œ๊ฐ€ ์‚ฌ์šฉ์ž์˜ ์ธ์ฆ์„ ์š”๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์—ˆ์Œ

3) HTTP/1.1์˜ ๋‹จ์ 

  • HTTP Pipelining
    • HTTP 1.0์˜ Network Latency๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ์ดํ”„๋ผ์ด๋‹์ด ๋„์ž…๋˜์—ˆ์ง€๋งŒ,
    • ์ด๋Š” ์ •ํ™•ํžˆ ๊ตฌํ˜„ํ•˜๊ธฐ ํž˜๋“ค ๋ฟ๋”๋Ÿฌ, HOL Blocking์ด ๋ฐœ์ƒํ•จ
  • HOL(Head of Line) Blocking
    • ์–ด๋–ค ์š”์ฒญ์— ๋ณ‘๋ชฉ์ด ์ƒ๊ฒจ์„œ ์ „์ฒด latency๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒƒ
    • CP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ†ต์‹ ์—์„œ ํŒจํ‚ท์€ ๋ฌด์กฐ๊ฑด ์ •ํ™•ํ•œ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•จ. ์ˆ˜์‹  ์ธก์€ ์†ก์‹  ์ธก๊ณผ ์ฃผ๊ณ  ๋ฐ›์€ ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ํŒจํ‚ท์„ ์žฌ์กฐ๋ฆฝํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž„.
    • ๋”ฐ๋ผ์„œ, ์ค‘๊ฐ„์— ํŒจํ‚ท์ด ์†์‹ค๋  ๊ฒฝ์šฐ ์™„์ „ํ•œ ๋ฐ์ดํ„ฐ๋กœ ์žฌ์กฐ๋ฆฝํ•˜๊ธฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ์†ก์‹  ์ธก์€ ํ•ด๋‹น ํŒจํ‚ท์ด ์ œ๋Œ€๋กœ ์ „๋‹ฌ๋˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ ์žฌ์ „์†กํ•ด์•ผ ํ•จ
    • ์„œ๋ฒ„๋Š” TCP์—์„œ ์š”์ฒญ์„ ๋ฐ›์€ ์ˆœ์„œ๋Œ€๋กœ ์‘๋‹ต์„ ํ•ด์•ผํ•˜๋ฏ€๋กœ, ์•ž์„  ์š”์ฒญ์— ์˜ํ•ด ๋’ค์˜ ์š”์ฒญ์ด ์ง€์—ฐ๋จ
  • ๋ฌด๊ฑฐ์šด Header
    • Client-Server ๊ฐ„ ์ˆ˜ ๋งŽ์€ http ์š”์ฒญ์ด ๋ฐœ์ƒํ•  ๊ฒƒ์ด๊ณ , header์˜ ์ •๋ณด๋Š” ๋Œ€๋ถ€๋ถ„ ๋™์ผ
    • ํ•˜์ง€๋งŒ HTTP 1.1์—์„œ๋Š” ํ—ค๋”๋ฅผ ์ค‘๋ณตํ•ด์„œ ๋ณด๋‚ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ cookie ์ •๋ณด ์—ญ์‹œ ๋งค ์š”์ฒญ๋งˆ๋‹ค ํ—ค๋”์— ํฌํ•จ๋˜์–ด ์ „์†ก๋จ
    • ์ฆ‰, ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š”๋ฐ ๋„คํŠธ์›Œํฌ ์ž์›์ด ์†Œ๋น„๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ

 

3. HTTP/2.0

1) HTTP/1.1 vs. HTTP/2.0

  • HTTP/1.1์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ปค๋„ฅ์…˜ ๋‹น ํ•˜๋‚˜์˜ ์š”์ฒญ๊ณผ ์‘๋‹ต๋งŒ ์ฒ˜๋ฆฌํ•จ(์ฆ‰, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์š”์ฒญ์„ ํ•œ ๋ฒˆ์— ์ „์†กํ•  ์ˆ˜ ์—†๊ณ  ์‘๋‹ต ๋˜ํ•œ ๋งˆ์ฐฌ๊ฐ€์ง€)
    • ๋”ฐ๋ผ์„œ HTML ๋ฌธ์„œ ๋‚ด์— ํฌํ•จ๋œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฆฌ์†Œ์Šค ์š”์ฒญ, ์ฆ‰ CSS ํŒŒ์ผ์„ ๋กœ๋“œํ•˜๋Š” link ํƒœ๊ทธ, ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ๋กœ๋“œํ•˜๋Š” img ํƒœ๊ทธ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋กœ๋“œํ•˜๋Š” script ํƒœ๊ทธ ๋“ฑ์— ์˜ํ•œ ๋ฆฌ์†Œ์Šค ์š”์ฒญ์ด ๊ฐœ๋ณ„์ ์œผ๋กœ ์ „์†ก๋˜๊ณ  ์‘๋‹ต ๋˜ํ•œ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ „์†ก๋จ
  • ์ด์ฒ˜๋Ÿผ HTTP/1.1์€ ๋ฆฌ์†Œ์Šค์˜ ๋™์‹œ ์ „์†ก์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ตฌ์กฐ์ด๋ฏ€๋กœ ์š”์ฒญํ•  ๋ฆฌ์†Œ์Šค์˜ ๊ฐœ์ˆ˜์— ๋น„๋ก€ํ•˜์—ฌ ์‘๋‹ต ์‹œ๊ฐ„๋„ ์ฆ๊ฐ€ํ•˜๋Š” ๋‹จ์ ์ด ์žˆ์Œ
  • ๊ทธ์— ๋ฐ˜ํ•ด HTTP/2๋Š” ์ปค๋„ฅ์…˜๋‹น ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์š”์ฒญ๊ณผ ์‘๋‹ต, ์ฆ‰ ๋‹ค์ค‘ ์š”์ฒญ/์‘๋‹ต์ด ๊ฐ€๋Šฅํ•จ
  • ์—ฌ๋Ÿฌ ๋ฆฌ์†Œ์Šค์˜ ๋™์‹œ ์ „์†ก์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ HTTP/1.1์— ๋น„ํ•ด ํŽ˜์ด์ง€ ๋กœ๋“œ ์†๋„๊ฐ€ ์•ฝ 50% ์ •๋„ ๋น ๋ฅด๋‹ค๊ณ  ์•Œ๋ ค์ ธ ์žˆ์Œ


2) HTTP/2.0 ํŠน์ง•

  • HTTP ๋ฉ”์‹œ์ง€ ์ „์†ก ๋ฐฉ์‹์˜ ๋ณ€ํ™”
    • ๋ฐ”์ด๋„ˆ๋ฆฌ ํ”„๋ ˆ์ด๋ฐ(binary framing) ๊ณ„์ธต ์‚ฌ์šฉ → ํŒŒ์‹ฑ, ์ „์†ก ์†๋„↑, ์˜ค๋ฅ˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ
  • Request and response multiplexing (I/O Multiplexing)
    • HTTP 1.1์˜ HTTP Pipelining์˜ ๊ฐœ์„ ์•ˆ์œผ๋กœ ํ•˜๋‚˜์˜ Connection์„ ํ†ตํ•ด ๋™์‹œ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฉ”์„ธ์ง€๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ
    • ๋˜ํ•œ, ์‘๋‹ต์€ ์š”์ฒญ ์ˆœ์„œ์— ์ƒ๊ด€์—†์ด Stream์œผ๋กœ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— HOL(Head Of Line) Blocking ๋ฌธ์ œ๋„ ํ•ด๊ฒฐ
    • ์ฆ‰ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ŠคํŠธ๋ฆผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์†ก์ˆ˜์‹ ํ•œ๋‹ค๋Š” ๊ฒƒ. ์ด๋ฅผ ํ†ตํ•ด ํŠน์ • ์ŠคํŠธ๋ฆผ์˜ ํŒจํ‚ท์ด ์†์‹ค๋˜์—ˆ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ํ•ด๋‹น ์ŠคํŠธ๋ฆผ์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ  ๋‚˜๋จธ์ง€ ์ŠคํŠธ๋ฆผ์€ ๋ฉ€์ฉกํ•˜๊ฒŒ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ์Œ
  • Stream Prioritization
    • ๋ฆฌ์†Œ์Šค๊ฐ„ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์„ค์ • ๊ฐ€๋Šฅ
    • ์‘๋‹ต์— ๋Œ€ํ•œ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ •ํ•ด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์„์ˆ˜๋ก ์‘๋‹ต์„ ๋นจ๋ฆฌ ํ•จ
  • Server Push
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•˜๊ธฐ ์ „์— HTTP/2 ํ˜ธํ™˜ ์„œ๋ฒ„๊ฐ€ ๋ฆฌ์†Œ์Šค๋ฅผ HTTP/2 ํ˜ธํ™˜ ํด๋ผ์ด์–ธํŠธ์— ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Œ
    • ์„œ๋ฒ„ ํ‘ธ์‹œ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฆฌ์†Œ์Šค๊ฐ€ ํ•„์š”ํ• ์ง€ ์•Œ๊ธฐ๋„ ์ „์— ๋ฏธ๋ฆฌ ๋ฆฌ์†Œ์Šค๋ฅผ ๋กœ๋“œํ•˜์—ฌ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” ์„ฑ๋Šฅ ๊ธฐ์ˆ 
    • ์ฆ‰, ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์—†์ด ์‘๋‹ต์„ ๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ตœ์†Œํ™”ํ•˜์—ฌ ์„œ๋ฒ„๊ฐ€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณด๋‚ด์ฃผ๋Š” ๋ฐฉ์‹

 

  • Header Compression
    • HTTP 1.1์˜ ๊ฒฝ์šฐ ์ด์ „ ์š”์ฒญ๊ณผ ์ค‘๋ณต๋˜๋Š” Header๋„ ๋˜‘๊ฐ™์ด ์ „์†กํ•˜๋Š๋ผ ๋„คํŠธ์›Œํฌ ์ž์›์„ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋‚ญ๋น„ํ•˜์˜€์Œ
    • HTTP 2.0์˜ ๊ฒฝ์šฐ, ํ—ค๋”์˜ ํฌ๊ธฐ๋ฅผ ์ค„์—ฌ ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ๊ฐ„ ๊ฐ์†Œ
    • Header Table๊ณผ Huffman Encoding์„ ์‚ฌ์šฉํ•˜๋Š” HPACK ์••์ถ•๋ฐฉ์‹์œผ๋กœ ์ด๋ฅผ ๊ฐœ์„ ํ•˜์˜€์Œ
    • ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ๊ฐ๊ฐ Header Table์„ ๊ด€๋ฆฌํ•˜๊ณ  ์ด์ „ ์š”์ฒญ๊ณผ ๋™์ผํ•œ ํ•„๋“œ๋Š” table์˜ index๋งŒ ๋ณด๋‚ด๊ณ , ๋ณ€๊ฒฝ๋˜๋Š” ๊ฐ’์€ Huffman Encoding ํ›„ ๋ณด๋ƒ„์œผ๋กœ์„œ Header์˜ ํฌ๊ธฐ๋ฅผ ๊ฒฝ๋Ÿ‰ํ™”

 

4. HTTP/3.0

  • HTTP/3.0์€ HTTP/2.0์—์„œ ์‚ฌ์šฉํ•˜๋Š” TCP ๋‚˜ TLS ๋ฐฉ์‹์ด ์•„๋‹Œ QUIC(Quick UDP Internet Connections)๋ฅผ ํ†ตํ•ด ์„ค๊ณ„๋จ
  • http/3.0์—์„œ๋Š” ๋ฌด์กฐ๊ฑด https๋ฅผ ์‚ฌ์šฉ
  • HTTP/2.0 ์—์„œ ์žฅ์ ์ด์—ˆ๋˜ ๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, "์ดˆ๊ธฐ ์—ฐ๊ฒฐ ์„ค์ • ์‹œ ์ง€์—ฐ ์‹œ๊ฐ„ ๊ฐ์†Œ"๋ผ๋Š” ๋Œ€ํ‘œ์  ํŠน์„ฑ์ด ์žˆ์Œ

1) QUIC(Quick UDP Internet Connections)

  • ์ „์†ก ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ
  • ์ˆœ๋ฐฉํ–ฅ ์˜ค๋ฅ˜ ์ˆ˜์ • ๋งค์ปค๋‹ˆ์ฆ˜(FEC, Forward Error Correction) ์ ์šฉ
    • ์ „์†กํ•œ ํŒจํ‚ท์ด ์†์‹ค๋˜์—ˆ๋‹ค๋ฉด ์ˆ˜์‹  ์ธก์—์„œ ์—๋Ÿฌ๋ฅผ ๊ฒ€์ถœํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ์‹์ด๋ฉฐ ์—ด์•…ํ•œ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์—์„œ๋„ ๋‚ฎ์€ ํŒจํ‚ท ์†์‹ค๋ฅ ์„ ์ž๋ž‘
  • ํ—ค๋” ์••์ถ• ๋˜๋Š” HPACK์ด ์•„๋‹Œ QPACK์‚ฌ์šฉ

  • Q) TCP๊ฐ€ ์•„๋‹Œ UDP๋ฅผ ์„ ํƒํ•œ ์ด์œ ?
  • A) TCP ํ—ค๋”๋Š” ์‹ ๋ขฐ์„ฑ์„ ํ™•๋ณดํ•˜์ง€๋งŒ ์ง€์—ฐ์„ ์ค„์ด๊ธฐ ํž˜๋“  ๊ตฌ์กฐ๊ณ  UDP๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก์— ์ง‘์ค‘ํ•œ ์„ค๊ณ„๋กœ ๋ณ„๋„์˜ ๊ธฐ๋Šฅ์ด ์—†์Œ
    ๋”ฐ๋ผ์„œ, ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์˜ ๊ตฌํ˜€์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, TCP์˜ Latency๋ฅผ ์ค„์ด๋ฉด์„œ TCP๋งŒํผ ์‹ ํšŒ์„ฑ ํ™•๋ณด๊ฐ€ ๊ฐ€๋Šฅํ•จ.


2) QUIC์˜ ์žฅ์ 

  • ์ „์†ก ์†๋„ ํ–ฅ์ƒ
    • ์ฒซ ์—ฐ๊ฒฐ ์„ค์ •์—์„œ ํ•„์š”ํ•œ ์ •๋ณด์™€ ํ•จ๊ป˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†ก → ์—ฐ๊ฒฐ ์„ฑ๊ณต ์‹œ ์„ค์ •์„ ์บ์‹ฑํ•˜์—ฌ ๋‹ค์Œ ์—ฐ๊ฒฐ ๋•Œ ๋ฐ”๋กœ ์„ฑ๋ฆฝ ๊ฐ€๋Šฅ
  • Connection UUID๋ผ๋Š” ๊ณ ์œ ํ•œ ์‹๋ณ„์ž๋กœ ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐ → ์ปค๋„ฅ์…˜ ์ˆ˜๋ฆฝ ํ•„์š”X
  • TLS(์ „์†ก ๊ณ„์ธต ๋ณด์•ˆ, Transport Layer Security) ๊ธฐ๋ณธ ์ ์šฉ
  • ๋…๋ฆฝ ์ŠคํŠธ๋ฆผ์„ ์ด์šฉํ•˜์—ฌ ํ–ฅ์ƒ๋œ ๋ฉ€ํ‹ฐํ”Œ๋ ‰์Šค ๊ธฐ๋Šฅ ์ œ๊ณต
  • IP Spoofing / Replay Attack์„ ๋ฐฉ์ง€ํ•ด ๋ณด์•ˆ์„ฑ ํ–ฅ์ƒ
    • Spoofing: ๊ทผ๊ฑฐ๋ฆฌ ํ†ต์‹ ๋ง(LAN) ํ•˜์—์„œ ์ฃผ์†Œ ๊ฒฐ์ • ํ”„๋กœํ† ์ฝœ(ARP) ๋ฉ”์„ธ์ง€๋ฅผ ์ด์šฉํ•ด ์ƒ๋Œ€๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํŒจํ‚ท์„ ์ค‘๊ฐ„์—์„œ ๊ฐ€๋กœ์ฑ„๋Š” ์ค‘๊ฐ„์ž ๊ณต๊ฒฉ ๊ธฐ๋ฒ•