[10๋ถ„ ํ…Œ์ฝ”ํ†ก] ๐Ÿงƒ์ฟจ๋ผ์ž„์˜ HTTP/1.1, HTTP/2, ๊ทธ๋ฆฌ๊ณ  QUIC

JIWOO YUNยท2023๋…„ 4์›” 5์ผ
0
post-custom-banner

movie


HTTP 0.9 ~ 2 -> TCP ์‚ฌ์šฉ

-> 0.9 ์˜ ๊ฒฝ์šฐ One line protocol์„ ์‚ฌ์šฉ

-> 1.0 ํ—ค๋” ์‚ฌ์šฉ (์ปค๋„ฅ์…˜ ํ•˜๋‚˜์— ์š”์ฒญํ•˜๋‚˜๋งŒ ์ฒ˜๋ฆฌ๊ฐ€๋Šฅ)

  • ๋งค๋ฒˆ ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ๋กœ ์ธํ•œ ์„ฑ๋Šฅ ์ €ํ•˜
  • ์„œ๋ฒ„ ๋ถ€ํ•˜ ๋น„์šฉ ์ฆ๊ฐ€

1.1 Persistent Connection ์‚ฌ์šฉ

  • ์ง€์ •ํ•œ timeout๋™์•ˆ์—๋Š” ์ปค๋„ฅ์…˜์„ ๋‹ซ์ง€์•Š๋Š”๋‹ค.
    • ๋งค๋ฒˆ ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ์„ ํ•˜์ง€์•Š์•„์„œ ์„ฑ๋Šฅ์ด ์ „๋ณด๋‹ค ์ข‹์•„์ง„๋‹ค.
  • Pipelining์‚ฌ์šฉ
    • ํ•˜๋‚˜์˜ ์ปค๋„ฅ์…˜์—์„œ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ์ง€์•Š๊ณ  ์ˆœ์ฐจ์ ์ธ ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ์—ฐ์†์ ์œผ๋กœ ๋ณด๋‚ด ๊ทธ ์ˆœ์„œ์— ๋งž์ถฐ ์‘๋‹ต์„ ๋ฐ›๋Š” ๋ฐฉ์‹ ์œผ๋กœ ์ง€์—ฐ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•
    • ํ•˜์ง€๋งŒ ์น˜๋ช…์ ์ธ ์˜ค๋ฅ˜ ์กด์žฌ
      • Head of Line Blocking -> ์ฒซ๋ฒˆ์งธ ์š”์ฒญ์ด ์˜ค๋ž˜๊ฑธ๋ฆฌ๊ฒŒ๋˜๋ฉด ๊ทธ๋‹ค์Œ ๋‹ค์Œ๋‹ค์Œ ์š”์ฒญ์ด ์ „๋ถ€ ๋Šฆ๊ฒŒ ์‘๋‹ต์ด ๋œ๋‹ค.
      • Header ๊ตฌ์กฐ์˜ ์ค‘๋ณต

http/2

  • ๊ธฐ์กด 1.x ๋ฒ„์ „์˜ ์„ฑ๋Šฅํ–ฅ์ƒ์— ์ดˆ์ ์„ ๋งž์ถ˜ ํ”„๋กœํ† ์ฝœ
  • ํ‘œ์ค€์˜ ๋Œ€์ฒด๊ฐ€ ์•„๋‹Œ ํ™•์žฅ

๋ฉ”์„ธ์ง€ ์ „์†ก ๋ฐฉ์‹์˜ ๋ณ€ํ™”

  • ๋ฐ”์ด๋„ˆ๋ฆฌ ํ”„๋ ˆ์ด๋ฐ ๊ณ„์ธต ์‚ฌ์šฉ

    • http ๋ฉ”์‹œ์ง€๊ฐ€ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์—์„œ ์–ด๋–ป๊ฒŒ ์บก์Šํ™”๋˜๊ณ  ์ „์†ก๋˜๋Š”์ง€์— ๊ด€์—ฌ
  • ํŒŒ์‹ฑ ์ „์† ์†๋„ ์ฆ๊ฐ€ , ์˜ค๋ฅ˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ ๊ฐ์†Œ

  • Request and response multiplexing

    • ํ”„๋ ˆ์ž„๋‹จ์œ„๋กœ ์ชผ๊ฐœ์ ธ์„œ ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”์„ธ์ง€๊ฐ„์˜ ์ˆœ์„œ๊ฐ€ ์กด์žฌํ•˜์ง€์•Š์•„์„œ head Of Line Blocking ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ
  • Stream Prioritization

    • ๋ฆฌ์†Œ์Šค๊ฐ„ ์šฐ์„ ์ˆœ์œ„ ์„ค์ • ๊ฐ€๋Šฅ
  • Server Push

    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•˜์ง€์•Š์€ ๋‚ด์šฉ์„ ์•Œ์•„์„œ ์„œ๋ฒ„๊ฐ€ ๋ณด๋‚ด์ฃผ๋Š” ๊ฒƒ
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•„์š”ํ•œ ๊ฒƒ์„ ์š”์ฒญํ•˜์ง€์•Š์•„๋„ ๋ณด๋‚ด์คŒ
  • Header Compression

    • ํ—ค๋”์˜ ํฌ๊ธฐ๋ฅผ ์ค„์—ฌ ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ๊ฐ„ ๊ฐ์†Œ
    • static table์„ ํ†ตํ•ด์„œ ์••์ถ•

QUIC

  • ์ „์†ก ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ
  • ๊ตฌ๊ธ€ ๊ด€๋ จ ์ œํ’ˆ ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๋ณธ ํ”„๋กœํ† ์ฝœ
  • UDP ๊ธฐ๋ฐ˜
    • UDP๋ฅผ ์“ฐ๋Š” ์ด์œ  -> ์‹ ๋ขฐ์„ฑ์ด ๋‚ฎ๊ธดํ•˜์ง€๋งŒ/ TCP๊ฐ€ ์ง€์—ฐ์„ ์ค„์ผ ์ˆ˜๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์—
    • UDP์˜ ๊ฒฝ์šฐ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด์„œ TCP ๋งŒํผ์˜ ์‹ ๋ขฐ์„ฑ ํ™•๋ณด๋„ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋–„๋ฌธ์—
  • ์ „์†ก์†๋„๊ฐ€ ํ–ฅ์ƒ๋จ
    • ์ฒซ ์—ฐ๊ฒฐ ์„ค์ •์—์„œ ํ•„์š”ํ•œ ์ •๋ณด์™€ ํ•จ๊ป˜ ๋ฐ์ดํ„ฐ ์ „์†ก --> ์—ฐ๊ฒฐ ์„ฑ๊ณต์‹œ ์บ์‹ฑํ•˜์—ฌ ๋‹ค์Œ์—ฐ๊ฒฐ๋•Œ ๋ฐ”๋กœ ์„ฑ๋ฆฝ ๊ฐ€๋Šฅ
    • ์ด๊ฒŒ ๊ฐ€๋Šฅํ•œ ์ด์œ  -> Connection UUID๋ผ๋Š” ๊ณ ์œ ํ•œ ์‹๋ณ„์ž๋กœ ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐํ•˜๊ธฐ ๋•Œ๋ฌธ์—
  • ๋ณด์•ˆ์„ฑ ํ–ฅ์ƒ
    • TLS ๊ธฐ๋ณธ ์ ์šฉ -> TLS (์ธํ„ฐ๋„ท์—์„œ์˜ ์ •๋ณด๋ฅผ ์•”ํ˜ธํ™”ํ•ด์„œ ์†ก์ˆ˜์‹ ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ)
  • ๋…๋ฆฝ ์ŠคํŠธ๋ฆผ ์‚ฌ์šฉ
profile
์—ด์‹ฌํžˆํ•˜์ž
post-custom-banner

0๊ฐœ์˜ ๋Œ“๊ธ€