HTTP/1.1 ๊ณผ HTTP/2.0

HTTP/1.1 ํŠน์ง•

๐Ÿ”น1997๋…„๋„ ๋ฐœํ‘œ(RFC 2068, ์ดํ›„ RFC 2616์œผ๋กœ ๊ฐœ์„ ๋จ)

๐Ÿ”นํ˜„์žฌ๊นŒ์ง€ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” HTTP ๋ฒ„์ „

๐Ÿ”น๊ธฐ๋ณธ์ ์œผ๋กœ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ํ”„๋กœํ† ์ฝœ

์ฃผ์š” ํŠน์ง• :

  • ์ง€์†์  ์—ฐ๊ฒฐ(Persistent Connection)

    • ํ•˜๋‚˜์˜ TCP ์—ฐ๊ฒฐ์„ ์—ฌ๋Ÿฌ ์š”์ฒญ/์‘๋‹ต์— ์‚ฌ์šฉ(Keep-Alive)

  • ํŒŒ์ดํ”„๋ผ์ด๋‹(Pipelining, but ์ œํ•œ์ )

    • ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ์—ฐ์†์ ์œผ๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ์‘๋‹ต ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜์—ฌ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ.

  • ํ—ค๋” ํฌ๊ธฐ๊ฐ€ ํผ (๋งค ์š”์ฒญ๋งˆ๋‹ค ์ค‘๋ณต๋œ ํ—ค๋” ์ „์†ก)

  • ๋ณ‘๋ชฉ ํ˜„์ƒ ๋ฐœ์ƒ(Head-of-Line Blocking)

    • ํ•˜๋‚˜์˜ ์š”์ฒญ์ด ์ง€์—ฐ๋˜๋ฉด ์ดํ›„ ์š”์ฒญ๋“ค๋„ ์˜ํ–ฅ์„ ๋ฐ›์Œ.

์žฅ์ 

  • ๋น„๊ต์  ๋‹จ์ˆœํ•œ ๊ตฌ์กฐ

  • ๋Œ€๋ถ€๋ถ„์˜ ์›น์„œ๋ฒ„, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ง€์›

  • Keep-Alive ๋•๋ถ„์— HTTP/1.0 ๋ณด๋‹ค ์„ฑ๋Šฅ ๊ฐœ์„ 

๋‹จ์ 

  • ๋‹ค์ค‘ ์š”์ฒญ ์ฒ˜๋ฆฌ ์–ด๋ ค์›€(๋ณ‘๋ชฉ ํ˜„์ƒ)

  • ํ—ค๋” ์ค‘๋ณต ๋ฌธ์ œ (๋งค๋ฒˆ ํฐ HTTP ํ—ค๋”๊ฐ€ ํฌํ•จ๋จ)

  • TCP ์—ฐ๊ฒฐ ํšจ์œจ์„ฑ ๋‚ฎ์Œ(์—ฌ๋Ÿฌ ๊ฐœ์˜ ์š”์ฒญ์„ ์œ„ํ•ด ์ƒˆ ์—ฐ๊ฒฐ์„ ์ž์ฃผ ์ƒ์„ฑ)


HTTP/2.0 ํŠน์ง•

๐Ÿ”น2015๋…„ ๋ฐœํ‘œ(RFC 7540)

๐Ÿ”นHTTP/1.1 ์˜ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ

์ฃผ์š” ํŠน์ง•:

  • ๋ฐ”์ด๋„ˆ๋ฆฌ ํ”„๋กœํ† ์ฝœ(Binary Protocol)

  • ๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ(Multiplexing)

    • ํ•˜๋‚˜์˜ TCP ์—ฐ๊ฒฐ์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์š”์ฒญ/์‘๋‹ต์„ ๋™์‹œ์— ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

  • ํ—ค๋” ์••์ถ•(HPACK ์••์ถ•)

    • ์ค‘๋ณต๋˜๋Š” HTTP ํ—ค๋”๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์••์ถ•ํ•˜์—ฌ ์ „์†ก๋Ÿ‰ ์ ˆ๊ฐ.

  • ์„œ๋ฒ„ ํ‘ธ์‹œ(Server Push)

    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•˜์ง€ ์•Š์€ ๋ฆฌ์†Œ์Šค๋„ ์„œ๋ฒ„๊ฐ€ ๋ฏธ๋ฆฌ ์ „์†ก ๊ฐ€๋Šฅ

  • ์šฐ์„ ์ˆœ์œ„ ์ง€์ •(Stream Prioritization)

    • ์š”์ฒญ๋งˆ๋‹ค ์šฐ์„ ์ˆœ์œ„๋ฅผ ์„ค์ •ํ•˜์—ฌ ์ค‘์š”ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋จผ์ € ์ „์†ก ๊ฐ€๋Šฅ

์žฅ์ 

  • ์†๋„ ๊ฐœ์„ (Multiplexing ๋•๋ถ„์— ์š”์ฒญ/์‘๋‹ต ์ง€์—ฐ ๊ฐ์†Œ)

  • ํ—ค๋” ์••์ถ•์œผ๋กœ ๋ฐ์ดํ„ฐ ์ ˆ์•ฝ

  • ์„œ๋ฒ„ ํ‘ธ์‹œ๋ฅผ ํ†ตํ•œ ๋น ๋ฅธ ๋กœ๋”ฉ ๊ฐ€๋Šฅ

๋‹จ์ 

  • TCP ์—ฐ๊ฒฐ ํ•˜๋‚˜๊ฐ€ ๋Š๊ธฐ๋ฉด ๋ชจ๋“  ์š”์ฒญ์ด ์˜ํ–ฅ์„ ๋ฐ›์Œ(QUIC ํ”„๋กœํ† ์ฝœ์ด HTTP/3 ์—์„œ ์ด๋ฅผ ํ•ด๊ฒฐ)

  • ๊ตฌํ˜„์ด ๋ณต์žก(๊ธฐ์กด HTTP/1.1 ๋ณด๋‹ค ๊ตฌ์กฐ๊ฐ€ ๋ณต์žกํ•จ)

  • ๋ธŒ๋ผ์šฐ์ € & ์„œ๋ฒ„๊ฐ€ HTTP/2.0 ์„ ์ง€์›ํ•ด์•ผํ•จ.


HTTP/1.1 vs HTTP/2.0 ๋น„๊ต ํ‘œ

์ „์†ก ๋ฐฉ์‹

ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜

๋ฐ”์ด๋„ˆ๋ฆฌ ๊ธฐ๋ฐ˜

๋‹ค์ค‘ ์š”์ฒญ ์ฒ˜๋ฆฌ

์ง๋ ฌ ์š”์ฒญ (์ˆœ์ฐจ์ )

๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ (๋™์‹œ ์š”์ฒญ)

ํ—ค๋” ํฌ๊ธฐ

์š”์ฒญ๋งˆ๋‹ค ์ „์ฒด ํ—ค๋” ์ „์†ก

HPACK์œผ๋กœ ํ—ค๋” ์••์ถ•

์„ฑ๋Šฅ

์š”์ฒญ๋‹น ํ•˜๋‚˜์”ฉ ์ฒ˜๋ฆฌ (๋ณ‘๋ชฉ ๊ฐ€๋Šฅ)

๋™์‹œ ๋‹ค์ค‘ ์š”์ฒญ ๊ฐ€๋Šฅ

์„œ๋ฒ„ ํ‘ธ์‹œ

โŒ ์ง€์› ์•ˆ ํ•จ

โœ… ๊ฐ€๋Šฅ

์šฐ์„ ์ˆœ์œ„ ์ง€์ •

โŒ ์—†์Œ

โœ… ๊ฐ€๋Šฅ

์ง€์› ๋ธŒ๋ผ์šฐ์ €

๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €

์ตœ์‹  ๋ธŒ๋ผ์šฐ์ € ์ง€์› ํ•„์š”


HTTP/2.0 ์€ ์–ด๋””์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋ ๊นŒ?

  • Google, YouTube, Facebook, Twitter ๋“ฑ ๋Œ€ํ˜• ์›น์‚ฌ์ดํŠธ

  • CDN(Content Delivery Network) ์„œ๋น„์Šค

  • SPA(Single Page Application) ๊ธฐ๋ฐ˜ ์›น์‚ฌ์ดํŠธ

  • REST API ์—์„œ ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ์œ„ํ•ด ์‚ฌ์šฉ

ํ•˜์ง€๋งŒ HHTP/2.0 ๋„ TCP ๊ธฐ๋ฐ˜์ด๋ผ ์ง€์—ฐ ์‹œ๊ฐ„์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด HTTP/3(UDP ๊ธฐ๋ฐ˜ QUIC ํ”„๋กœํ† ์ฝœ) ์ด ๋“ฑ์žฅ

Last updated

Was this helpful?