HTTP/2

HTTP 2.0 ์—์„œ ๋‹ฌ๋ผ์ง„ ์ 

HTTP/1 ์ด ๋Š๋ฆฐ ์ด์œ 

์•ž์—์„œ ๋‚ ๋ ธ๋˜ ์š”์ฒญ์˜ ์‘๋‹ต์„ ๋ฐ›์•„์•ผ๋งŒ ๋‹ค์Œ ์š”์ฒญ์ด ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ๋‹ค

  • HTTP 1.0 ๋ฒ„์ „์—์„œ๋งŒ ํ•˜๋”๋ผ๋„, request๋ฅผ ๋‚ ๋ฆด ๋•Œ๋งˆ๋‹ค connection ์„ ์ƒˆ๋กœ ์ƒ์„ฑํ–ˆ๋‹ค โ†’ ๋น„ํšจ์œจ์ 

  • HTTP 1.1 ์—์„œ๋Š” ์ง€์† ์ปค๋„ฅ์…˜ ๊ณผ HTTP ํŒŒ์ดํ”„๋ผ์ด๋‹ ์ด๋ผ๋Š” ๊ฐœ๋…์ด ๋“ค์–ด๊ฐ”๋‹ค

    • ์ปค๋„ฅ์…˜์„ ์žฌ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๊ณ ,

    • request๋ฅผ ๋ฏธ๋ฆฌ ์„œ๋ฒ„์— ์—ฌ๋Ÿฌ๊ฐœ ๋‚ ๋ฆด ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค

  • but, request๋ฅผ ๋ณด๋‚ธ ์ˆœ์„œ๋Œ€๋กœ response๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ง€์ ์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค

    • ๋งŒ์•ฝ ์ฒ˜์Œ์— ์š”์ฒญํ•œ request์— ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด์„œ ์‘๋‹ต์ด ๋Šฆ์–ด์ง€๋ฉด, ๊ทธ ์ดํ›„์— ์š”์ฒญํ•œ request์˜ ์‘๋‹ต๋„ ๊ฐ™์ด ๋Šฆ์–ด์ง„๋‹ค๋Š” ๋ฌธ์ œ์ ์ด ๋ฐœ์ƒํ•œ๋‹ค

      โ†’ `Head of Line Blocking`
      • Network์—์„œ packet ๋Œ€๊ธฐ์—ด ์ด ์กด์žฌํ•  ๋•Œ, ์•ž์„ (head) packet์ด ์ง€์—ฐ๋  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์„ฑ๋Šฅ ์ €ํ•˜ ํ˜„์ƒ

HTTP/2 ์˜ ํŠน์ง•

  • HTTP header data ์••์ถ•

    • ์ด์ „ header์˜ ๋‚ด์šฉ๊ณผ ์ค‘๋ณต๋˜๋Š” field ๋ฅผ ์žฌ์ „์†กํ•˜์ง€ ์•Š๋„๋ก ํ•˜์—ฌ, ๋ฐ์ดํ„ฐ๋ฅผ ์ ˆ์•ฝํ•œ๋‹ค

    • ๊ธฐ์กด์— header๊ฐ€ Plain Text (ํ‰๋ฌธ) ์ด์—ˆ์ง€๋งŒ, HTTP/2์—์„œ๋Š” HPACK ์ด๋ผ๋Š” header ์••์ถ•๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ „์†ก ํšจ์œจ ์„ ๋†’์˜€๋‹ค

  • Server Push

    • client๊ฐ€ ์š”์ฒญํ•˜์ง€ ์•Š์€ JS, CSS, image ํŒŒ์ผ ์ฒ˜๋Ÿผ ๊ฐ™์ด ํ•„์š”ํ•˜๊ฒŒ ๋  ํŠน์ • ํŒŒ์ผ๋“ค์„ server์—์„œ ๋‹จ์ผ HTTP ์š”์ฒญ ์‘๋‹ต ์‹œ ํ•จ๊ป˜ ์ „์†ก ํ•  ์ˆ˜ ์žˆ๋‹ค

  • HTTP 1.x ์˜ Head of Line Blocking ๋ฌธ์ œ ํ•ด๊ฒฐ

    • HTTP/2์—์„œ๋Š” ์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ํ•œ๋ฒˆ์— ๋ณ‘๋ ฌ ์ „์†ก ํ•˜์—ฌ ์ „์†ก ์‹œ๊ฐ„์„ ์ ˆ๊ฐํ–ˆ๋‹ค

    • TCP ์—ฐ๊ฒฐ ํ•˜๋‚˜๋กœ ์—ฌ๋Ÿฌ ์š”์ฒญ๊ณผ ์‘๋‹ต๋“ค์„ ๋ณ‘๋ ฌ์  ์œผ๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค

      • ํ•˜๋‚˜์˜ connection์—์„œ ์—ฌ๋Ÿฌ ๋ณ‘๋ ฌ stream ์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค

      • stream์ด ๋’ค์„ž์—ฌ์„œ ์ „์†ก๋  ๊ฒฝ์šฐ, stream number๋ฅผ ์ด์šฉํ•˜์—ฌ ์ˆ˜์‹ ์ธก์—์„œ ์žฌ์กฐํ•ฉ ๋œ๋‹ค

  • stream ์šฐ์„  ์ˆœ์œ„

    • ์—ฌ๋Ÿฌ stream์˜ frame ์„ ๋‹ค์ค‘ํ™” (multiplexing) ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉด์„œ, stream์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•  ํ•„์š”๊ฐ€ ์ƒ๊ฒผ๋‹ค

    • client๋Š” ์šฐ์„  ์ˆœ์œ„ ์ง€์ •์„ ์œ„ํ•ด ์šฐ์„  ์ˆœ์œ„ ์ง€์ • ํŠธ๋ฆฌ ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ server์˜ stream ์ฒ˜๋ฆฌ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค

      • ์„œ๋ฒ„๋Š” ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ์‘๋‹ต์ด client์— ์šฐ์„ ์ ์œผ๋กœ ์ „๋‹ฌ๋  ์ˆ˜ ์žˆ๋„๋ก ๋Œ€์—ญํญ์„ ์„ค์ •ํ•œ๋‹ค

Last updated