์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
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 ๊ท๊ฒฉ๋ ๋ ผ์๋๊ณ ์๋ค. ๊ตฌ๊ธ์ด๋ ์ ํ๋ธ ๋ฑ์ ์ ํ ์ ์ฉ ์ค์ด๋ค.
ํ์ค์์ 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๋ถํฐ ์ง์ํ๋ค.
๋งฅ์์๋ 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 ์ด์์ฒด์ ์์ ๋๋ ค์ผ ํ๋ค.
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์ ์ ํ ์ ์ฉ(โ
)ํ๊ธฐ๋ ํ๋ค.
- Node.js ๊ณต์ ์ฌ์ดํธ
- ๊ตฌ๊ธ โ
- ์ ํ๋ธ โ
- ๋ฆฌ๋ ์ค ๋ฏผํธ ๊ณต์ ์ฌ์ดํธ