HTTP / 2.0

HTTP 2.0

๊ธฐ์กด 1.1 ๋ฒ„์ „์„ ๋Œ€์ฒดํ•œ ๊ฒƒ์ด ์•„๋‹Œ ์„ฑ๋Šฅ์„ ํ™•์žฅ์‹œํ‚จ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

google
naver

๊ฐœ๋ฐœ์ž ๋„๊ตฌ์—์„œ ํ˜„์žฌ goole์€ 3๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ , naver๋Š” 2๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

H2์˜ ํ•ต์‹ฌ์€ Binary Framing Layer๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์š”์ฒญ๊ณผ ์‘๋‹ต์˜ ๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ์„ ์ง€์›ํ•œ๋‹ค.

์ƒˆ๋กœ์šด Binary Framing ๋งค์ปค๋‹ˆ์ฆ˜์ด ๋„์ž…๋˜๋ฉด์„œ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ตํ™˜ ๋ฐฉ์‹์ด ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค.

์ด๋ฏธ์ง€์—์„œ ๊ธฐ์กด์˜ HTTP 1.1์€ ์ผ๋ฐ˜ ํ…์ŠคํŠธ ํ˜•์‹์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•˜์ง€๋งŒ 2.0์—์„œ๋Š” ํ”„๋ ˆ์ž„๊ณผ ๋‹จ์œ„๋กœ ๋ถ„ํ• ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Binary๋กœ Encoding ํ•œ๋‹ค.

  • TEXT ๋ณด๋‹ค ํŒŒ์‹ฑ, ์ „์†ก์†๋„๊ฐ€ ๋น ๋ฆ„

  • ์˜ค๋ฅ˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ๋„ ์ ์–ด์ง„๋‹ค.

ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” Connection์•ˆ์— Stream์ด๋ผ๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ฐฉํ–ฅํ–ฅ ํ๋ฆ„์ด ์กด์žฌํ•œ๋‹ค.

๊ทธ ์•ˆ์—๋Š” ํ”„๋ ˆ์ž„๋“ค์ด ์žˆ๊ณ  ํ”„๋ ˆ์ž„ ์กฐ๊ฐ๋“ค์ด ํ•ฉ์ณ์ ธ์„œ ์š”์ฒญ์ด๋‚˜ ์‘๋‹ต์˜ ๋ฐ์ดํ„ฐ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

์‰ฝ๊ฒŒ ์–˜๊ธฐํ•ด์„œ H2๋Š” HTTP ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜•ํƒœ์˜ ํ”„๋ ˆ์ž„์œผ๋กœ ๋‚˜๋ˆ„๊ณ  ์ด๋ฅผ ์ „์†ก ํ›„ ๋ฐ›์€์ชฝ์—์„œ ๋‹ค์‹œ ์žฌ์กฐ๋ฆฝํ•œ๋‹ค. ๊ทธ๋ž˜์„œ Request์™€ Response์˜ Multiplexing, ์š”์ฒญ๊ณผ ์‘๋‹ต์˜ ๋‹ค์ค‘ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค.

๋ฉ”์‹œ์ง€๊ฐ€ ํ”„๋ ˆ์ž„์œผ๋กœ ์ชผ๊ฐœ์ง€๋ฉด์„œ ์ˆœ์„œ๊ฐ€ ๋ฌด์˜๋ฏธํ•ด์กŒ๋‹ค. ํ”„๋ ˆ์ž„์€ ์ธํ„ฐ๋Ÿฌ๋น™์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

circle-info

์ธํ„ฐ๋Ÿฌ๋น™ : ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ”„๋ ˆ์ž„์ด ๋™์‹œ์— ์ „์†ก๋˜๋ฉด, ์ˆ˜์‹  ์ธก์—์„œ ์ด๋ฅผ ์ˆœ์„œ์— ๋งž๊ฒŒ ์กฐ๋ฆฝํ•˜๋Š” ๊ธฐ์ˆ 

๊ทธ๋ž˜์„œ ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ๋„ ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ์‘๋‹ต์„ ๋ณด๋‚ผ ๋•Œ๋„ ์ธํ„ฐ๋ฆฌ๋น™์ด ๋ฐœ์ƒํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ํŠน์„ฑ์œผ๋กœ ์—ฌ๋Ÿฌ ์š”์ฒญ์ด ์žˆ๋”๋ผ๋„ ์‘๋‹ต์ด ๋ณ‘๋ ฌ๋กœ ์ง„ํ–‰๋˜์–ด ๋‹ค๋ฅธ ์š”์ฒญ์ด๋‚˜ ์‘๋‹ต์ด ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒƒ์„ ๊ธฐ๋‹ค๋ฆด ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด์ „์˜ HOL Blocking ๋ฌธ์ œ๋„ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค.

HTTP 2.0 ํŠน์ง• ์ •๋ฆฌ

์ •๋ฆฌํ•ด์„œ, HTTP 2.0์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์ด ์žˆ๋‹ค.

  • Stream(์ŠคํŠธ๋ฆผ) : ์–‘๋ฐฉํ–ฅ ํ†ต์‹ , ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ํ†ต๋กœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

  • Frame(ํ”„๋ ˆ์ž„) : ์ŠคํŠธ๋ฆผ ๋‚ด์—์„œ ์ „์†ก๋˜๋Š” ์ตœ์†Œ ๋‹จ์œ„์˜ ๋ฐ์ดํ„ฐ ์กฐ๊ฐ์ด๋‹ค.

  • Multiplexing(๋‹ค์ค‘ํ™”) : ํ•˜๋‚˜์˜ TCP ์—ฐ๊ฒฐ์„ ํ†ตํ•ด์„œ ์—ฌ๋Ÿฌ ์ŠคํŠธ๋ฆผ์„ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

  • Frame ์ธํ„ฐ๋ฆฌ๋น™ : ์—ฌ๋Ÿฌ ํ”„๋ ˆ์ž„์„ ๋™์‹œ์— ์ „์†กํ•˜๊ณ , ์ˆ˜์‹  ์ธก์—์„œ ์žฌ์กฐ๋ฆฝํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.

  • ์ŠคํŠธ๋ฆผ ์šฐ์„ ์ˆœ์œ„ ์ง€์ • ๊ฐ€๋Šฅ : ๊ฐ๊ฐ์˜ ์ŠคํŠธ๋ฆผ์— ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์š”ํ•œ ๋ฆฌ์†Œ์Šค ๋จผ์ € ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

Last updated