์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
1. ๊ฐœ์š”2. ์ƒ์„ธ3. HTTP/1.1์—์„œ์˜ ๊ฐœ์„ ์ 
3.1. Head of line blocking(HOL)3.2. ์ค‘๋ณต ํ—ค๋”์˜ ์ œ๊ฑฐ3.3. Header compression3.4. Server push3.5. Prioritization
4. ์ง€์›
4.1. ์›น ๋ธŒ๋ผ์šฐ์ €4.2. ์›น ์„œ๋ฒ„4.3. ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„
5. HTTP/2๊ฐ€ ์ ์šฉ๋œ ์‚ฌ์ดํŠธ

1. ๊ฐœ์š”[ํŽธ์ง‘]

2015๋…„ IETF์— ์˜ํ•ด ๊ณต์‹์ ์œผ๋กœ ๋ฐœํ‘œ๋œ HTTP/1.1์˜ ์ฐจ๊ธฐ ๋ฒ„์ „์ด๋‹ค. Hypertext Transfer Protocol Version 2 (HTTP/2)

2. ์ƒ์„ธ[ํŽธ์ง‘]

1999๋…„์— ๋ฐœํ‘œ๋œ HTTP/1.1์€ ํ…์ŠคํŠธ ์œ„์ฃผ์˜ ์ „์†ก ํ”„๋กœํ† ์ฝœ์ด์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์›น ๊ธฐ์ˆ ์ด ๋ฐœ์ „ํ•จ์— ๋”ฐ๋ผ ์‚ฌ์ง„, ๋™์˜์ƒ ๋“ฑ๊ณผ ๊ฐ™์€ ๊ณ ์šฉ๋Ÿ‰์˜ ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ์ผ์ด ๋งŽ์•„์กŒ๊ณ , ๋ชจ๋ฐ”์ผ ์‹œ์žฅ์ด ์—„์ฒญ๋‚˜๊ฒŒ ์„ฑ์žฅํ–ˆ๋‹ค. ์ด์— ๋”ฐ๋ผ ์ƒˆ๋กœ์šด ๋ฒ„์ „์˜ HTTP๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ฃผ์žฅ๋˜์—ˆ๋‹ค. ์ด์— ๊ตฌ๊ธ€์€ ์ž์ฒด์ ์œผ๋กœ SPDY๋ผ๋Š” ํ”„๋กœํ† ์ฝœ์„ ๊ฐœ๋ฐœํ•จ์œผ๋กœ์จ HTTP/2 ๊ฐœ๋ฐœ์— ๋ถˆ์„ ์ง€ํˆ๋‹ค. ์ดํ›„ 2012๋…„, IETF์—์„œ HTTP/2์˜ ์ฒซ Draft๋กœ SPDY์˜ ๊ตฌ์กฐ๋ฅผ ์ฑ„ํƒํ•จ์œผ๋กœ์จ ํ˜„์žฌ์˜ HTTP/2์˜ ๊ตฌ์กฐ์™€ ๊ธฐ๋Šฅ์ด SPDY์™€ ์œ ์‚ฌํ•˜๋‹ค. First draft of HTTP/2

ํ‘œ์ค€์—์„œ TLS๋ฅผ ์š”๊ตฌํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ, SPDY์—์„œ TLS๋ฅผ ์š”๊ตฌํ–ˆ๋˜ ์—ฌํŒŒ๋กœ ์ธํ•ด ๋ชจ๋“  ๋ฉ”์ด์ € ๋ธŒ๋ผ์šฐ์ €๋“ค์ด TLS์—†์ด๋Š” HTTP/2๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๊ณ  ์žˆ๋‹ค. (TLS๊ฐ€ ์—†์œผ๋ฉด ๋ฌด์กฐ๊ฑด HTTP/1.1๋กœ ์š”์ฒญํ•œ๋‹ค.)

์›น2.0๊ณผ๋Š” ๊ทธ๋‹ค์ง€ ๊ด€๊ณ„์—†๋‹ค. ์ด์ชฝ์€ HTTP/2๋ณด๋‹ค ํ›จ์”ฌ ๋จผ์ € ๋‚˜์˜จ ์›น์˜ ํฌ๊ด„์  ๊ฐœ๋…์ด๋‹ค.

2020๋…„ ๋ง ๋“ค์–ด์„œ๋Š” HTTP/3 ๊ทœ๊ฒฉ๋„ ๋…ผ์˜๋˜๊ณ  ์žˆ๋‹ค. ๊ตฌ๊ธ€์ด๋‚˜ ์œ ํŠœ๋ธŒ ๋“ฑ์— ์„ ํ–‰ ์ ์šฉ ์ค‘์ด๋‹ค.

3. HTTP/1.1์—์„œ์˜ ๊ฐœ์„ ์ [ํŽธ์ง‘]

3.1. Head of line blocking(HOL)[ํŽธ์ง‘]

HTTP/1.1๊นŒ์ง€๋Š” ํ•œ ๋ฒˆ์— ํ•œ ํŒŒ์ผ๋ฐ–์— ๋ชป ๋ณด๋ƒˆ๋‹ค. ๊ทธ๋ž˜์„œ ํŠน์ • ํŒŒ์ผ์˜ ๋กœ๋”ฉ์ด ๋Šฆ์–ด์ง€๋ฉด ๋‹ค๋ฅธ ํŒŒ์ผ๊นŒ์ง€ ์ค„์ค„์ด ๋А๋ ค์ง€๋Š” ๋ณ‘๋ชฉ ํ˜„์ƒ์ด ์ƒ๊ธฐ๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ํ•œ๊บผ๋ฒˆ์— ๋ณ‘๋ ฌ ์ „์†ก์„ ํ•˜๋Š” ์‹์œผ๋กœ ๋กœ๋”ฉ ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.

3.2. ์ค‘๋ณต ํ—ค๋”์˜ ์ œ๊ฑฐ[ํŽธ์ง‘]

๊ฐ™์€ ๋‚ด์šฉ์˜ ํ—ค๋”๋ฅผ ๋ณด๋‚ผ ๊ฒฝ์šฐ, ์ƒ๋žตํ•ด๋ฒ„๋ฆฌ๋Š” ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•จ์œผ๋กœ์จ ์†๋„๋ฅผ ๋†’์ด๋Š” ๋ฐฉ์‹์ด๋‹ค.

3.3. Header compression[ํŽธ์ง‘]

์ด์ „๊นŒ์ง€๋Š” HTTP ํ—ค๋”๊ฐ€ ํ‰๋ฌธ์ด์—ˆ์ง€๋งŒ, HTTP/2์—์„œ๋Š” ํ—ค๋”๋ฅผ ์••์ถ•ํ•˜์—ฌ ์šฉ๋Ÿ‰ ๋Œ€๋น„ ์ฒ˜๋ฆฌ ํšจ์œจ์„ฑ์„ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค. ์••์ถ•์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ—ค๋” ํฌ๊ธฐ ์ž์ฒด๋„ ํฌ๊ฒŒ ์ค„์–ด๋“ ๋‹ค.

3.4. Server push[ํŽธ์ง‘]

ํŠน์ • ํŒŒ์ผ์„ ์„œ๋ฒ„์— ์ง€์ •ํ•ด์„œ HTTP ์ „์†ก ์‹œ ๊ฐ™์ด ๋ฐ€์–ด ๋„ฃ๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ฃผ๋กœ JavaScript๋‚˜ CSS, ๊ธ€๊ผด, ์ด๋ฏธ์ง€ ํŒŒ์ผ ๋“ฑ์„ ์ง€์ •ํ•œ๋‹ค.

3.5. Prioritization[ํŽธ์ง‘]

์›น ํŽ˜์ด์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ํŒŒ์ผ์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋‘˜ ์ˆ˜ ์žˆ๋‹ค. ๋กœ๋”ฉ์ด ๋นจ๋ฆฌ ๋˜์–ด์•ผ ํ•˜๋Š” ํŒŒ์ผ๊ณผ ๊ทธ๋ ‡์ง€ ์•Š์€ ํŒŒ์ผ์„ ๊ตฌ๋ถ„ํ•ด์ค„ ์ˆ˜ ์žˆ๊ณ , ์ด๋“ค ์‚ฌ์ด์—์„œ๋„ ์ค‘์š”๋„๋ฅผ ์ฐจ๋“ฑ ๋ฐฐ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

4. ์ง€์›[ํŽธ์ง‘]

4.1. ์›น ๋ธŒ๋ผ์šฐ์ €[ํŽธ์ง‘]

์ผ๋‹จ 2015๋…„์— ํ‘œ์ค€์•ˆ์ด ๋‚˜์™”๊ธฐ ๋•Œ๋ฌธ์— ์ธํ„ฐ๋„ท ์ต์Šคํ”Œ๋กœ๋Ÿฌ๋Š” 11, ๊ทธ๊ฒƒ๋„ Windows 10 ํ™˜๊ฒฝ์—์„œ์•ผ ์ง€์›ํ•œ๋‹ค. Windows 7์šฉ IE11์€ HTTP/1.1๋งŒ ์ง€์›ํ•˜๋ฉฐ, Windows 8.1์šฉ IE11์€ HTTP/2์˜ ์ „์‹ ์ธ SPDY๋ฅผ ์ง€์›ํ•˜๊ธฐ๋Š” ํ•˜๋‚˜, HTTP/2์™€์˜ ํ˜ธํ™˜์„ฑ์€ ์—†๊ธฐ ๋•Œ๋ฌธ์— HTTP/1.1๋กœ ๋กœ๋”ฉ๋œ๋‹ค. ์ด์ „ ๋ฒ„์ „์˜ ์œˆ๋„๋ฅผ ์“ด๋‹ค๋ฉด ํฌ๋กฌ์ด๋‚˜ ํŒŒ์ด์–ดํญ์Šค ๋“ฑ ํƒ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์“ฐ๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค. ๋ชจ๋ฐ”์ผ์˜ ๊ฒฝ์šฐ ์•ˆ๋“œ๋กœ์ด๋“œ๋Š” ๋ˆ„๊ฐ€ ์ดํ›„๋ถ€ํ„ฐ, iOS๋Š” 8 ๋ฒ„์ „๋ถ€ํ„ฐ ์ง€์›ํ•œ๋‹ค.

๋งฅ์—์„œ๋Š” OS X 10.11๋ถ€ํ„ฐ, ์‚ฌํŒŒ๋ฆฌ๋Š” 9๋ถ€ํ„ฐ ์ง€์›ํ•œ๋‹ค.

4.2. ์›น ์„œ๋ฒ„[ํŽธ์ง‘]

์•„ํŒŒ์น˜ HTTP ์„œ๋ฒ„๋Š” 2.4.12๋ถ€ํ„ฐ ์ผ๋ถ€ ์ง€์›ํ•˜๋‹ค๊ฐ€ 2.4.17๋ถ€ํ„ฐ ์™„์ „ํ•˜๊ฒŒ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค. mod_http2 ๋ชจ๋“ˆ์„ ์ถ”๊ฐ€ ์„ค์น˜ํ•˜๋Š” ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค.

NGINX๋Š” 1.9.5๋ถ€ํ„ฐ ์ผ๋ถ€ ์ง€์›ํ•˜๋‹ค๊ฐ€ 1.13.9 ๋ฒ„์ „์—์„œ ์™„์ „ํ•˜๊ฒŒ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค. ngx_http_v2_module์„ ์ถ”๊ฐ€ ์„ค์น˜ํ•ด์•ผ ํ•œ๋‹ค.

์ธํ„ฐ๋„ท ์ •๋ณด ์„œ๋น„์Šค๋Š” ๋ฒ„์ „ 10๋ถ€ํ„ฐ ์ง€์›ํ•˜๊ณ , Windows Server 2016์ด๋‚˜ Windows 10 ์šด์˜์ฒด์ œ์—์„œ ๋Œ๋ ค์•ผ ํ•œ๋‹ค.

4.3. ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„[ํŽธ์ง‘]

ํ†ฐ์บฃ์—์„œ ์ง€์›ํ•˜๋ฉฐ server.xml์„ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค.

5. HTTP/2๊ฐ€ ์ ์šฉ๋œ ์‚ฌ์ดํŠธ[ํŽธ์ง‘]

์›น ๋ธŒ๋ผ์šฐ์ €์˜ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ์ด์šฉํ•ด ํ”„๋กœํ† ์ฝœ์„ ํ™•์ธํ•˜๊ฑฐ๋‚˜, ํฌ๋กฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ HTTP Indicator๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ ‘์†ํ•œ ์›น์‚ฌ์ดํŠธ์˜ HTTP/2 ์ง€์› ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ผ๋ถ€๋Š” HTTP/3์„ ์„ ํ–‰ ์ ์šฉ(โ˜…)ํ•˜๊ธฐ๋„ ํ•œ๋‹ค.