HTTP version ํŠน์ง•

๋ฐ๋ธŒ์›Œ๋‹ˆยท2024๋…„ 1์›” 8์ผ

Web

๋ชฉ๋ก ๋ณด๊ธฐ
4/4
post-thumbnail

๐Ÿ”Ž HTTP ๋ฒ„์ „

HTTP 1.0 - ๋น„์—ฐ๊ฒฐ

โžก๏ธ HTTP ํ—ค๋”(header) ๊ฐœ๋…์ด ๋„์ž…๋˜์–ด ์š”์ฒญ๊ณผ ์‘๋‹ต์— ์ถ”๊ฐ€๋˜๋ฉฐ, ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ณ  ํ”„๋กœํ† ์ฝœ์„ ์œ ์—ฐํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ฐœ์„ 

ํ•œ๊ณ„

  • ์ปค๋„ฅ์…˜ ํ•˜๋‚˜๋‹น ์š”์ฒญ ํ•˜๋‚˜์™€ ์‘๋‹ต ํ•˜๋‚˜๋งŒ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ
    -> TCP/IP ์—ฐ๊ฒฐ์„ ์ƒˆ๋กœ ๋งบ์–ด์•ผํ•˜๋ฏ€๋กœ 3 way handshake ์‹œ๊ฐ„์ด ์ถ”๊ฐ€

HTTP 1.1 - ์ง€์†์ ์ธ ์—ฐ๊ฒฐ

โžก๏ธ ์ง€์†์ ์ธ ์—ฐ๊ฒฐ(Persistant Connections)

  • HTTP ์ง€์† ์—ฐ๊ฒฐ์—์„œ๋Š” ์—ฐ๊ฒฐ์ด ์ด๋ฃจ์–ด์ง€๊ณ  ๋‚œ ๋’ค ๊ฐ๊ฐ์˜ ์ž์›๋“ค์„ ์š”์ฒญํ•˜๊ณ , ๋ชจ๋“  ์ž์›์— ๋Œ€ํ•œ ์‘๋‹ต์ด ๋Œ์•„์˜จ ํ›„์— ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•œ๋‹ค.

โžก๏ธ Pipelining ์ถ”๊ฐ€

  • ์•ž ์š”์ฒญ์˜ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ์ˆœ์ฐจ์ ์ธ ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ์—ฐ์†์ ์œผ๋กœ ๋ณด๋‚ด๊ณ , ๊ทธ ์ˆœ์„œ์— ๋งž์ถฐ ์‘๋‹ต์„ ๋ฐ›๋Š” ๋ฐฉ์‹์ด ๋“ฑ์žฅ

ํ•œ๊ณ„

  • Head Of Line Blocking (HOL): ์•ž ์š”์ฒญ์˜ ์‘๋‹ต ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ์˜ค๋ž˜๊ฑธ๋ฆฌ๋ฉด ๋’ค ์š”์ฒญ์€ Blocking ๋˜์–ด๋ฒ„๋ฆฐ๋‹ค.
    -> Pipelining์œผ๋กœ ํ•˜๋‚˜์˜ ์ปค๋„ฅ์…˜์— ์—ฌ๋Ÿฌ ์š”์ฒญ์ด ๊ฐ€๋Šฅํ–ˆ์ง€๋งŒ, ๊ฒฐ๊ตญ ๋™์‹œ์— ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ด ์‘๋‹ต์œผ๋กœ ์ฃผ์ง€๋Š” ๋ชปํ•˜์˜€์Œ

HTTP 2.0 - Stream

โžก๏ธ Multiplexed Streams

  • ๋ฉ”์‹œ์ง€๊ฐ€ ์ด์ง„ํ™”๋œ ํ…์ŠคํŠธ์ธ frame์œผ๋กœ ๋‚˜๋‰˜์–ด ์š”์ฒญ๋งˆ๋‹ค ๊ตฌ๋ถ„๋˜๋Š” Stream์„ ํ†ตํ•ด ์ „๋‹ฌ
    ์ฆ‰, frame์ด ๊ฐ ์š”์ฒญ์˜ Stream์„ ํ†ตํ•ด ์ „๋‹ฌ๋˜๋ฉฐ, ํ•˜๋‚˜์˜ ์ปค๋„ฅ์…˜ ์•ˆ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ Stream์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ฒŒ๋˜์–ด ๋‹ค์ค‘ํ™”(multiplexing)๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง
    • ๋™์‹œ์— ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ด์ง
    • Stream์„ ํ†ตํ•ด์„œ ๊ฐ ์š”์ฒญ์˜ ์‘๋‹ต์˜ ์ˆœ์„œ๊ฐ€ ์˜๋ฏธ๊ฐ€ ์—†์–ด์ ธ, HOL Blocking์ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ•ด๊ฒฐ๋จ

ํ•œ๊ณ„

  • ๊ฐ ์š”์ฒญ๋งˆ๋‹ค Stream์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ๋ณ‘๋ ฌ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์ง€๋งŒ, TCP ๊ณ ์œ ์˜ HOL Blocking์ด ์กด์žฌ
    -> ์„œ๋กœ ๋‹ค๋ฅธ Stream์ด ์ „์†ก๋˜๊ณ  ์žˆ์„ ๋•Œ, ํ•˜๋‚˜์˜ Stream์—์„œ ์œ ์‹ค์ด ๋ฐœ์ƒ๋˜๊ฑฐ๋‚˜ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ํ•ด๊ฒฐ๋  ๋•Œ๊นŒ์ง€ ์ง€์—ฐ๋˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒ๋˜๊ธฐ ๋•Œ๋ฌธ

HTTP 3.0 - UDP ๊ธฐ๋ฐ˜

โžก๏ธ QUIC ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘

  • Quic ์ด๋ž€ Google์—์„œ ๊ฐœ๋ฐœํ•œ UDP ๊ธฐ๋ฐ˜์˜ ์ „์†ก ํ”„๋กœํ† ์ฝœ
  • Google์—์„œ TCP์˜ ๊ตฌ์กฐ์  ๋ฌธ์ œ๋กœ ์„ฑ๋Šฅ ํ–ฅ์ƒ์ด ์–ด๋ ต๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ UDP ๊ธฐ๋ฐ˜์„ ์„ ํƒ
  • QUIC์€ TCP์˜ Stream์€ ํ•˜๋‚˜์˜ chain์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋Š” ๊ฒƒ๊ณผ ๋‹ค๋ฅด๊ฒŒ ๊ฐ Stream๋‹น ๋…๋ฆฝ๋œ Stream chain์„ ๊ตฌ์„ฑํ•˜์—ฌ TCP HOL Blocking์„ ํ•ด๊ฒฐ

๐Ÿš€ ์ฐธ๊ณ 
HTTP (1) - version ๋ณ„ ํŠน์ง• (0.9 / 1.0 / 2.0 / 3.0)

profile
ํ•จ๊ป˜ ์„ฑ์žฅํ•˜๊ณ  ์‹ถ์€ ๊ฐœ๋ฐœ์ž

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