HTTP 2.0
HTTP1 ์ ์์ฒญ ๋ฐฉ์
HTTP1 ์์๋ ์์์ ๋ ๋ ท๋ ์์ฒญ์ ์๋ต์ ๋ฐ์์ผ๋ง ๋ค์ ์์ฒญ์ด ์ฒ๋ฆฌ๋ ์ ์๋ค.
์ด๋ฌํ ํ์์ ํด๊ฒฐ ํ๊ธฐ์ํด ์ง์ ์ปค๋ฅ์
(Persistent Connection) ์ด๋ผ๋ ๊ฐ๋
๊ณผ HTTP ํ์ดํ ๋ผ์ด๋ (Pipelining) ์ด๋ผ๋ ๊ฐ๋
์ด ๋ค์ด๊ฐ๋ค.
์ปค๋ฅ์
์ ์ฌ์ฌ์ฉํ ์ ์๊ณ , Request
๋ฅผ ๋ฏธ๋ฆฌ ์ฌ๋ฌ๊ฐ ์๋ฒ๋ก ์์ฒญํ ์ ์๊ฒ ๋์๋ค.
ํ์ง๋ง ๊ทผ๋ณธ์ ์ผ๋ก Request
๋ณด๋ธ ์์๋๋ก Response
๋ฅผ ๋ฐ์์ ์๋ค๋ ์ ์์๋ ๋ฌธ์ ํด๊ฒฐ์ด ์ด๋ ค์ ๋ณด์ธ๋ค.
HOL (Head-of-Line Blocking) ์ ๋ฌธ์ ์
๋ง์ฝ ์ฒ์์ ์์ฒญํ Request
์ ๋ฌธ์ ๊ฐ ์์ด Response
๊ฐ ๋ฆ์ด์ง๋ฉด 2๋ฒ์งธ, 3๋ฒ์งธ์ ์์ฒญํ Request
์ Response
๋ ๋ฆ์ด์ง๋ ๋ฌธ์ ์ ์ด ๋ฐ์ํ๋ค.
๋๋ฉ์ธ ์ค๋ฉ
HOL ๊ณผ ๊ฐ์ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ธฐ ์ํ์ฌ ๋ฆฌ์์ค๋ฅผ ๋๋ฉ์ธ ๋ณ๋ก ๋ถ๋ฆฌํด์ ์์์ ๋ฐ๋ ๋ฐฉ๋ฒ
๋๋ฉ์ธ๋ณ๋ก ๋ฆฌ์์ค๋ฅผ ๋ณ๋ ฌ์ ์ผ๋ก ๋์์ ๋ฐ์์ ์๋ค.
ํ์ง๋ง ํ๋์ ๋๋ฉ์ธ๋ณ ๋ธ๋ผ์ฐ์ ์์ ๋ฐ์์ ์๋ ์ปค๋ฅ์ ์ ์ ํ ์ด๋ DNS Lookup ๊ณผ์ ๊ณผ TCP Handshake ๊ณผ์ ์์ ์์๋๋ ์๊ฐ ๋๋ฌธ์ ์คํ๋ ค ๋ถ์์ฉ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ์๋ค.
๋ธ๋ผ์ฐ์ ๋น ๋๋ฉ์ธ๋ณ ๋ฆฌ์์ค ๋ค์ด ์ ํ์ ๋ณดํต 6 ~ 8 ๊ฐ์ ๋ ์ด๋ฉฐ
iframe
์ ์ ์ธ์ด๋ค.
๊ทธ ์ธ ๋ฐฉ๋ฒ๋ค
HTTP 1.1 ์์๋ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ ํตํด์๋ ์ฑ๋ฅ๊ฐ์ ์ ์๋ํ์๋ค.
- HTTP ์์ฒญ ์ต์ํ
- ํฐ ์ด๋ฏธ์ง๋ฅผ ํ์ผ๋ก ์์ฒญํ CSS ๋ก ์๊ฒ ์๋ผ์ ์ฌ์ฉ
- BASE64 ์ธ์ฝ๋ฉ๋ ์ด๋ฏธ์ง๋ฅผ ์์ฒญํด์ ์ฌ์ฉ
- ์์ค ์์ถ
- HTML ์ gzip ์์ถ ์ ์ก
- JS, CSS ์ ์์ค ์์ถ
HTTP 2.0 ์ ๋ค๋ฅธ์
๋ฐ์ด๋๋ฆฌ๋ก ์ธ์ฝ๋ฉ๋ ๋ฐ์ดํฐ ์ ์ก
๊ธฐ์กด์ ํ
์คํธ ๊ธฐ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ด๋๋ฆฌ ํฌ๋งท์ ๋ฐ์ดํฐ๋ก ์ฌ์ฉํ๊ฒ ๋์ด
ํ์ฑ์ด ๋ ๋น ๋ฅด๊ณ ์ค๋ฅ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ์ ์ผ๋ฉฐ ํ๋์ ํ๋ ์ธ ๋ฐ์ดํฐ๋ฅผ ํ๋ ์ ๋จ์๋ก ๋๋ ์ ๊ด๋ฆฌ ๋ฐ ์ ์กํ ์ ์๋ค.
HTTP 2.0 ์ Frame ๊ณผ Stream ์ด๋ผ๋ ๊ฐ๋ ์ด ์ ์ฉ ๋์๋ค.
HTTP 1.x ์์ ์๋ ์์ฒญ (Request) ๊ณผ ์๋ต (Response) ์ผ๋ก ๋ช ํํ ๊ตฌ๋ถ๋์๋ค.
- Frame
- HTTP2 ํต์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์์ ์๋ ๊ฐ์ฅ ์์ ๋จ์์ ๋ฐ์ดํฐ
- ํค๋ ํ๋ ์, ๋ฐ์ดํฐ ํ๋ ์์ผ๋ก ๊ตฌ์ฑ
- Stream
Server
์Client
์ฌ์ด์ ์๋ฐฉํฅ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ํ๊ฐ ์ด์์ ๋ฉ์ธ์ง ๋ฅผ ์๋ฏธํ๋ค.
์คํธ๋ฆผ = ๋ฉ์ธ์ง + ๋ฉ์ธ์ง + ๋ฉ์ธ์ง + ๋ฉ์ธ์ง + ๋ฉ์ธ์ง + ๋ฉ์ธ์ง + ...
๋ฉ์ธ์ง = ํ๋ ์ + ํ๋ ์ + ํ๋ ์ + ํ๋ ์ + ํ๋ ์ + ํ๋ ์ + ...
์ฐ์ ์์ ์ค์
์๋์ ์ผ๋ก ์ค์ํ ๋ฆฌ์์ค๋ฅผ ๋จผ์ ๋ค์ด๋ก๋ ๋ฐ๊ฒ ๋ ์ ์ก ์คํธ๋ฆผ์ ์ฐ์ ์์ ์ค์ ์ด ๊ฐ๋ฅํ๋ค.
Server Push
์์ฒญํ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ฒ๊ฐ ์์์ ํ์ํ ๋ฆฌ์์ค๋ฅผ ์ฐพ์์ ๋ด๋ ค์ค๋ค.
ํ์ง๋ง ๋ธ๋ผ์ฐ์ ๊ฐ ์บ์ฑ๋ ๋ฐ์ดํฐ ๋ ํ์์๋ ๋ฆฌ์์ค ๋ฐ์ดํฐ ๋ ์์์ ๋ญ๋น๋ฅผ ์ด๋ํ ์ ์๋ค.
ํค๋์ ์์ถ
HTTP2 ์ Header ๋ Header Table ๋ก ๊ด๋ฆฌ ๋์ด ์ด์ ์์ฒญ์์ ์ค๋ณต์ผ๋ก ์ ์ธ๋ ํค๋๋ ์ธ๋ฑ์ค ๊ฐ๋ง ์ ์กํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ต์ํ ํ๋ค.
์ ์ฉ ๋ฐฉ๋ฒ
- TSL / SSH ์ธ์ฆ์ ํ์
- ์น์๋ฒ์ ์ธํ
๊ณ ๋ ค์ฌํญ
์ผ๋ถ ํ๊ฒฝ์ ๋ํด์๋ ํจ์จ์ด ๋จ์ด์ ธ ์ ์ฉ ํ๊ฒฝ์ ๋ฐ๋ฅธ ๊ณ ๋ ค๊ฐ ํ์ํ๋ค.
HTTP 2.0 ํจ์จ์ด ๋ฎ์ ๊ฒฝ์ฐ
HTTP 1.1 ๋ณด๋ค ์ฑ๋ฅ์ ์ผ๋ก๋ ์ฐ์ํ์ง๋ง ์ ์ฉํ์์๋์ ์๋์ ๊ฐ์ ์ํฉ์ผ ๊ฒฝ์ฐ ์ฑ๋ฅ์ ์ด์ ์ด ์ฐจ์ด๊ฐ ์๋ ๊ฒฝ์ฐ๋ ์๋ค.
- HTTP ๋ง ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
- SSL ํธ๋์ ฐ์ดํฌ ์๊ฐ์ด ์ถ๊ฐ์ ์ผ๋ก ํ์ํ์ฌ ์ถ๊ฐ ์๊ฐ ์์
- ๋๋ฉ์ธ์ด ๋ง์ ๊ฒฝ์ฐ
- ๋๋ฉ์ธ๋ณ๋ก ๋์ํ๋ฏ๋ก ๋๋ฉ์ธ๋ณ๋ก ์ปค๋ฅ์ ์ด ํ์๋ก ํ๋ค ์ด์ ๋ฐ๋ฅธ ์๊ฐ์ ํจ์จ์ด ๋จ์ด์ง๋ค.
- HTTP ๊ฐ ๋ณ๋ชฉ ํ์์ด ์๋ ๊ฒฝ์ฐ
- RTT (Round-Trip Dealy Time : ๋ฉ์ธ์ง๋ฅผ ์๊ฒฉ์ ๋ณด๋ด๊ณ ๊ทธ๊ฒ์ด ๋์์ค๋ ์๋ต์๊ฐ - ๋ ์ดํด์) ๊ฐ ์์ ๊ฒฝ์ฐ
- ๋ ์ดํด์๊ฐ ํฐ ๊ฒฝ์ฐ์๋ง ๋ ํฐ ํจ์จ์ ์ป์์ ์๊ธฐ ๋๋ฌธ์ RTT ๊ฐ ๋งค์ฐ ์์ ๊ฒฝ์ฐ์๋ ์ด์ ์ด ์๋ค.
- ํ์ด์ง ๋ด์ ๋ฆฌ์์ค๊ฐ ์ ์ ๊ฒฝ์ฐ
- 6๊ฐ ์ดํ์ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ง๋ค๋ฉด ์ปค๋ฅ์ ์ฌ์ฌ์ฉ์ ๊ฐ์น๊ฐ ๋จ์ด์ง๋ค.
์ผ๋ถ ํด๋ผ์ด์ธํธ ๋ธ๋ผ์ฐ์ ์ ์ํด์ ์ง์ ๊ฐ๋ฅ์ฑ์ด ์์ดํ์ฌ ํ์ธ์ด ํ์ํ๋ค.
์ง์ ๊ฐ๋ฅ ๋ธ๋ผ์ฐ์
- IE11 (Win10 ver)
- IE Edge
- Chrome
- IOS Chrome
- Firefox
- Opera
- ๊ธฐํ ๋ธ๋ผ์ฐ์