HTTP
URL๊ณผ URN
URL(Uniform Resource Locator)
์น ์ฃผ์
URN(Uniform Resource Name)
ํน์ ๋ค์์คํ์ด์ค์์ ์ด๋ฆ์ผ๋ก ๋ฆฌ์์ค๋ฅผ ์๋ณํ๋ URI
URI(Uniform Resource Identifier) ๊ตฌ๋ฌธ

์ธํฐ๋ท
์ธํฐ๋ท ํ๋กํ ์ฝ(IP, Internet Protocol)์ ๊ณต์ ํด ๋ฉ์์ง๋ฅผ ๋ผ์ฐํ ํ๋ ์์ผ๋ก ์ฐ๊ฒฐ๋ ๊ณต์ฉ ์ปดํจํฐ์ ๋ชจ์์ด๋ค.
์๋ ์์ด๋ ์น, ์ด๋ฉ์ผ, ํ์ผ ๊ณต์ , ์ธํฐ๋ท ์ ํ ๋ฑ ํฌํจ
HTTP
์น ๋ธ๋ผ์ฐ์ ๊ฐ ์น ํ์ด์ง๋ฅผ ์์ฒญํ๋ ๋ฐฉ์์ด๋ค.
URI ๋ฐ Hypertext Markup Language์ ํจ๊ป (ํ ๋ฒ๋์ค ๋ฆฌTim Berners-Lee)๊ฐ ์น ๋ฐ๋ช ํ์ ๋ ์ ์ํ ์ธ ๊ฐ์ง ์ฃผ์ ๊ธฐ์ ์ค ํ๋๋ค.
์๋ ์์

IP์ฃผ์๋ฅผ ์ ํ๋ฒํธ๋ผ๊ณ ์๊ฐํ๋ฉด DNS(Domain Name System)๋ ์ ํ๋ฒํธ๋ถ๋ค. - DNS๋ ๊ฐ์ฅ ๊ฐ๊น์ด ์๋ฒ์ IP ์ฃผ์๋ฅผ ์ ๊ณตํ๋ค.
์น ๋ธ๋ผ์ฐ์ ๊ฐ ์ปดํจํฐ์ ์ด ์ฃผ์๋ก ํ์ค ์นํฌํธ(ํฌํธ 80) ๋๋ ํ์ค ๋ณด์ ์น ํฌํธ(ํฌํธ 443)์ IP๋ฅผ ํตํ TCP(Transmission Control Protocol)์ฐ๊ฒฐ์ ์์ฒญํ๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ ์น ์๋ฒ์ ์ฐ๊ฒฐ์ ๋งบ๊ณ ์์ผ๋ฉด ์น ์ฌ์ดํธ๋ฅผ ์์ฒญํ๊ธฐ ์์ํ ์ ์๋ค.
์๋ฒ๋ ์์ฒญ๋ฐ์ URL์ ์๋ตํ๋ค.
์น ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฐํ๋ ์๋ต์ ์ฒ๋ฆฌํ๋ค. - HTML ์ฝ๋ ํด์์ ์์ํ๊ณ ๋ฉ๋ชจ๋ฆฌ์ ํด๋น ํ์ด์ง์ ๋ด๋ถ ํํ์ธ ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ(DOM,Document Objet Model)์ ๊ตฌ์ถํ๋ค.
์น ํ๋ผ์ฐ์ ๊ฐ ์ถ๊ฐ๋ก ํ์ํ ๋ฆฌ์์ค๋ฅผ ์์ฒญํ๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ ์ค์ํ ๋ฆฌ์์ค๋ฅผ ์ถฉ๋ถํ ์ป์ผ๋ฉด ํ๋ฉด์ ํ์ด์ง๋ฅผ ๋ ๋๋งํ๊ธฐ ์์ํ๋ค.
ํ์ด์ง๋ฅผ ์ฒ์ ํ์ํ ํ ์น ๋ธ๋ผ์ฐ์ ๋ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ํ์ด์ง์ ํ์ํ ๋ค๋ฅธ ๋ฆฌ์์ค๋ฅผ ๊ณ์ ๋ค์ด๋ก๋ํ๊ณ ๋ฆฌ์์ค๋ฅผ ์ฒ๋ฆฌํ๋ ๋๋ก ํ์ด์ง๋ฅผ ์ ๋ฐ์ดํธํ๋ค.
ํ์ด์ง๊ฐ ์์ ํ ๋ก๋๋๋ฉด ๋ธ๋ผ์ฐ์ ๋ ๋ก๋ฉ ์์ด์ฝ์ ๋ฉ์ถ๊ณ , ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์์ ํ์ด์ง๊ฐ ์ด๋ค ๋์์ ์ํํ ์ค๋น๊ฐ ๋๋ค๋ ํ์๋ก ์ฌ์ฉ ํ ์ ์๋ OnLoad ์๋ฐ์คํฌ๋ฆฝํธ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํจ๋ค.
์ด ์์ ์์ ํ์ด์ง๋ ์์ ํ ๋ก๋๋์ง๋ง ๋ธ๋ผ์ฐ์ ๋ ์์ฒญ ์ ์ก์ ๋จธ์ถ์ง ์๋ค,
OSI 7 ๊ณ์ธต

HTTP 1.0

HTTP/1.1
ํธ์คํธ ํค๋๊ฐ ํ์์ ์ธ ๊ฐ์ด ๋์ผ๋ฉฐ ์ง์์ ์ธ ์ฐ๊ฒฐ์ด ์ถ๊ฐ๋๋ค๋ ์ ์ด HTTP/1.0 ๊ตฌ๋ฌธ๊ณผ์ ๋๋๋ฌ์ง๋ ์ฐจ์ด์ ์ด ์๋ค.
ํ์์ ์ธ ํธ์คํธ ํค๋
์ง์์ ์ธ ์ฐ๊ฒฐ(keep-alive)
Connection HTTP ํด๋๋ก ํด๊ฒฐ
๊ธฐํ ์๋ก์ด ๊ธฐ๋ฅ
HTTP/1.0์ ์ ์๋ GET,POST,HEAD ๋ฉ์๋์ ์ถ๊ฐ๋ ์๋ก์ด ๋ฉ์๋๋ PUT,OPTIONS์ ์ ์ฌ์ฉ๋์ง๋ ์๋ CONNECT, TRACE, DELETE๋ค
๊ฐ์ ๋ ์บ์ฑ ๋ฐฉ๋ฒ์ ๋์ ํด ์๋ฒ๊ฐ ๋ฆฌ์์ค(CSS ํ์ผ๊ณผ ๊ฐ์)๋ฅผ ๋ธ๋ผ์ฐ์ ์ ์บ์์ ์ ์ฅํด์ ํ์ํ๋ฉด ๋์ค์ ์ฌ์ฌ์ฉํ ์ ์๋๋ก ํด๋ผ์ด์ธํธ์ ์ง์ํ ์ ์๋ค. Cache-Control HTTP ํค๋๋ HTTP/1.1์ HTTP/1.0์ Expires ํค๋๋ณด๋ค ๋ง์ ์ต์ ์ ๋์ ํ๋ค.
HTTP๊ฐ ์ํ ์๋ ํ๋กํ ์ฝ์์ ์ํ๋ฅผ ๊ฐ์ง ์ ์๊ฒ ํ๋ HTTP ์ฟ ํค๋ฅผ ๋์ ํ๋ค.
HTTP ์๋ต์์์ ๋ฌธ์ ์งํฉ(character set)๊ณผ ์ธ์ด๋ฅผ ๋์ ํ๋ค.
ํ๋ก์ ์ง์ ๊ธฐ๋ฅ์ ๋์ ํ๋ค.
์ธ์ฆ ๊ธฐ๋ฅ์ ๋์ ํ๋ค.
์๋ก์ด ์ํ ์ฝ๋๋ฅผ ๋์ ํ๋ค.
ํํ ํค๋๋ฅผ ๋์ ํ๋ค.
HTTP/1.1์ ๊ทผ๋ณธ์ ์ธ ์ฑ๋ฅ ๋ฌธ์

๋๊ธฐ ์๊ฐ์ด ๊ธธ๋ค.
๋๊ธฐ์๊ฐ์ ๋จ์ผ ๋ฉ์์ง๋ฅผ ์๋ฒ์ ์ ์กํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ธก์ ํ๋ ๋ฐ๋ฉด, ๋์ญํญ์ ์ฌ์ฉ์๊ฐ ์ด ๋ฉ์์ง์์ ๋ค์ด๋ก๋ ํ ์ ์๋ ์์ ์ธก์ ํ๋ค
ํ์ดํ๋ผ์ด๋

์ฌ์ ํ ํ์ดํ๋ผ์ด๋์์๋ ์๋ต์ด ์์ฒญ์ ์์๋๋ก ๋ฐํ๋ผ์ผ ํ ํ์๊ฐ ์๋ค
HOL(Head-Of-Line) ๋ธ๋กํน
HTTP/1.1 ์ฑ๋ฅ ๋ฌธ์ ์ ์ฐํ์ ํด๊ฒฐ ๋ฐฉ๋ฒ
HTTP/1.1์ ๋๊ธฐ์ ์ด๋ค.(synchronous)
๋ ๋ถ๋ฅ
์ฌ๋ฌ HTTP ์ฐ๊ฒฐ์ ์ฌ์ฉํ๋ค.
์ ์ง๋ง ์ ์ฌ์ ์ผ๋ก ํฐ HTTP ์์ฒญ์ ๋ง๋ ๋ค.
์ฌ์ฉ์๊ฐ ๋ฆฌ์์ค๋ฅผ ์ต์ ์ ๋ฐฉ์์ผ๋ก ์์ฒญํ๊ณ (์๋ฅผ ๋ค์ด ์ค์ํ CSS๋ฅผ ๋จผ์ ์์ฒญ), ๋ค์ด๋ก๋ํ๋ ์์ ์ค์ด๊ณ (์์ถ๊ณผ ๋ฐ์ํ ์ด๋ฏธ์ง), ๋ธ๋ผ์ฐ์ ์ ์์ ์ ์ค์ด๋(๋์ฑ ํจ์จ์ ์ธ CSS์ ์๋ฐ์คํฌ๋ฆฝํธ)๊ฒ์ ๋ณด์ฅํ๋ ๋ฐฉ์์ ์๋ฐํ๋ค.
์ฌ๋ฌ HTTP ์ฐ๊ฒฐ ์ฌ์ฉ
HTTP/1.1์ ๋ธ๋กํน ๋ฌธ์ ๋ฅผ ํํผํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ ์ค ํ๋๋ ์ฌ๋ฌ ๊ฐ์ ์ฐ๊ฒฐ์ ๋งบ์ด ๋ณ๋ ฌ๋ก ์ฌ๋ฌ ๊ฐ์ HTTP ์์ฒญ์ด ๋์์์ด ๋์ํ๊ฒ ํ๋ ๊ฒ์ด๋ค.
๋๋ฉ์ธ ์ค๋ฉ(domain sharding)
๋ณ๋ ฌํ ์ ๋๋ฅผ ์ฆ๊ฐ์ํค๋ ๊ฒ ์ธ์๋ ์ฟ ํค์ HTTP ํค๋๋ฅผ ๊ฐ์์ํค๋ ๋ฑ์ ์ญํ ์ ํ๊ธฐ ๋๋ฌธ์ ์ ์ํ ์ ์๋ค.
์ฃผ์ ์ด์๋ ํ๋ถ TCP ํ๋กํ ์ฝ์์์ ์ปค๋ค๋ ๋นํจ์จ์ฑ์ด๋ค.
TCP๋ ๊ณ ์ ์ํธ์ค ๋ฒํธ๊ฐ ์๋ ํจํท์ ์ ์กํ๊ณ ๋๋ฝ๋ ์ํ์ค ๋ฒํธ๋ฅผ ๊ฒ์ํด์ ๋์ค์ ์์ค๋ ํจํท์ ๋ค์ ์์ฒญํ๋ ๊ฒ์ด ๋ณด์ฅ๋ ํ๋กํ ์ฝ์ด๋ค.
TCP๋ 3 ๋ฐฉํฅ ํธ๋์
ฐ์ดํฌ(three-way handshake)

ํด๋ผ์ด์ธํธ๋ ์๋ฒ์๊ฒ ์ํธ์ค ๋ฒํธ๋ฅผ ์๋ ค์ฃผ๋ ๋๊ธฐํ(SYN) ๋ฉ์์ง๋ฅผ ์ ์กํ๋ค. ํด๋ผ์ด์ธํธ๋ ์ด ์์ฒญ๋ถํฐ ๋ชจ๋ ๋ฏธ๋์ TCP ํจํท์ด ์ด ์ํธ์ค๋ฒํธ์ ๊ธฐ๋ฐ์ ๋ ๊ฒ์ผ๋ก ๊ธฐ๋ํ ๊ฒ์ด๋ค.
์๋ฒ๋ ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ธ ์ํธ์ค ๋ฒํธ๋ฅผ ๋ฐ์๋ค๊ณ ์๋ฆฌ๊ณ ์๋ฒ ์์ฒด์ ๋๊ธฐํ ์์ฒญ์ ์ ์กํด ํด๋ผ์ด์ธํธ์๊ฒ ์๋ฒ์ ๋ฉ์์ง์ ์ฌ์ฉํ ์ํธ์ค ๋ฒํธ๋ฅผ ์ ํ๋ค. ๋ ๋ฉ์์ง๋ ํ๋์ SYN-ACK ๋ฉ์์ง๋ก ๊ฒฐํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก ํด๋ผ์ด์ธํธ๋ ACK ๋ฉ์์ง๋ก ์๋ฒ์ ์ํธ์ค ๋ฒํธ๋ฅผ ๋ฐ์๋ค๊ณ ์๋ฆฐ๋ค.
์ ์ฒด ์ฐฝ (CWND, congestion window)
์๊ฐ์ด ์ง๋๋ ๋ฐ ๋ฐ๋ผ ์ฐ๊ฒฐ์ด ํจํท ์์ค ์์ด ๋ ํฐ ํฌ๊ธฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ฉด์ ์ ์ฐจ ์ฆ๊ฐํ๋ค.
TCP ์ ์ฒด ์ฐฝ์ ํฌ๊ธฐ๋ TCP ๋๋ฆฐ ์์ ์๋ก๋ฆฌ์ฆ์ ์ ์ดํ๋ค.
TCP๋ ๋คํธ์ํฌ์ ๊ณผ๋ถํ๋ฅผ ์ฃผ์ง ์์ผ๋ ค๊ณ ํ๋ ๋ณด์ฅ๋ ํ๋กํ ์ฝ์ด๋ค.
์ฌ๋ฌ ๊ฐ์ ์ฐ๊ฒฐ์ ๋งบ๋ ๊ฒ์ HTTP ์์ค์์ ๊ด์ฐฎ์ ์ต์ ํ์ด๋๋ผ๋ TCP์ HTTPS ์์ค์์๋ ๋นํจ์จ์ ์ด๋ค.
์์ฒญ ์ ์ค์ด๊ธฐ
์์ฒญ ์ ์ค์ด๊ธฐ ๊ธฐ๋ฒ
๋ถํ์ํ ์์ฒญ์ ์ค์ด๊ฑฐ๋(๋ธ๋ผ์ฐ์ ์ ์์ฐ์ ์บ์ํ๋ ๋ฑ) ์ ์ ์์ HTTP ์์ฒญ์ ๋์ผํ ์์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ ๊ฒ ๋ฑ์ด ํฌํจ๋๋ค.
์ ์์ ๋ฐฉ๋ฒ์ HTTP ์บ์ฑ ํค๋ ์ฌ์ฉ๊ณผ ์ฐ๊ด๋ผ ์๊ณ
ํ์์ ๋ฐฉ๋ฒ์ ์์ฐ์ ๊ฒฐํฉ๋ ํ์ผ๋ก ๋ฌถ๋(bundle) ์ผ์ด ์๋ฐ๋๋ค.
์คํ๋ผ์ดํ (spriting)
์ด๋ฏธ์ง์ ๋ํ ๋ฒ๋ค๋ง ๊ธฐ๋ฒ
์ค์ ํ๋ ๋ฐ ๋ ธ๋ ฅ์ด ํ์ํ๋ค.
๋ฆฌ์์ค๋ฅผ ๋ค๋ฅธ ํ์ผ์ ์ธ๋ผ์ธ์ํค๋ ๊ฒ๋ ํฌํจ๋๋ค.
๋จ์ ์ ๋ณต์ก์ฑ
๋ญ๋น
์บ์ฑ
์ด ๊ธฐ๋ฒ์ ๋คํธ์ํฌ ๊ณ์ธต๊ณผ ์ฒ๋ฆฌ์ ์ธก๋ฉด์์ ๋ชจ๋ ๋นํจ์จ์ ์ด๋ค.
HTTPS
HTTP๊ฐ ์ผ๋ฐ ํ ์คํธ์ด๊ธฐ ๋๋ฌธ์ ๋์ค์ ๋ฉ์์ง๋ฅผ ๊ฐ๋ก์ฑ๊ณ ,์ฝ๊ณ ,๊ณ ์ณ ์ฐ๊ธฐ๊น์ง ํ ์ ์๋ค.
์ ์ก ์ค์ ๋ฉ์์ง๋ฅผ ์ ์ก ๊ณ์ธต ๋ณด์(TLS, Transport Layer Security) ํ๋กํ ์ฝ์ ์ฌ์ฉํด ์ํธํํ๋ HTTP์ ๋ณด์ ๋ฒ์ ์ด๋ค.
TLS๋ ์ข ์ข ์ด์ ์ด๋ฆ์ธ ๋ณด์ ์์ผ ๊ณ์ธต(SSL,Secure Sockets Layer)
์ถ๊ฐํ ์ธ๊ฐ์ง ๊ฐ๋
์ํธํ: ๋ฉ์์ง๋ ์ ์ก ์ค์ ์ 3์์๊ฒ ์ฝํ ์ ์๋ค.
๋ฌด๊ฒฐ์ฑ: ์ํธํ๋ ๋ฉ์์ง๊ฐ ๋์งํธ ์๋ช ๋๊ณ ์๋ช ์ด ๋ณตํธํ๋๊ธฐ ์ ์ ์ํธํ์ ์ผ๋ก ๊ฒ์ฆ๋๊ธฐ ๋๋ฌธ์ ๋ฉ์์ง๋ ์ ์ก ์ค์ ๋ณ๊ฒฝ๋์ง ์๋๋ค.
์ธ์ฆ: ์๋ฒ๋ ํด๋ผ์ด์ธํธ๊ฐ ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ ค๋ ๋ฐ๋ก ๊ทธ ์๋ฒ๋ค.
HTTPS ํธ๋์ธ์ดํฌ
HTTPS๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ HTTP/1์ด๋ HTTP/2๋ ๊ฐ์ ํ์ค HTTP ์ฐ๊ฒฐ์ ์ํธํํ๋ ๋ฐ SSL/TLS๋ฅผ ์ฌ์ฉํ๋ค๋ ๋ป์ด๋ค.
๊ณต๊ฐ-๋น๊ณต๊ฐํค ์ํธํ๋ ๋น๋์นญํ ์ํธํ๋ผ๊ณ ์๋ ค์ ธ ์๋๋ฐ, ๋ฉ์์ง๋ฅผ ์ํธํํ๊ณ ๋ณตํธํํ๋ ๋ฐ ๋ค๋ฅธ ํค๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ฌํ ์ ํ์ ์ํธํ๋ ์ด์ ์ ํ ๋ฒ๋ ์ฐ๊ฒฐํ ์ ์ด ์๋ ์๋ฒ์ ๋ณด์ ํต์ ์ ํ๋๋ฐ ํ์ํ์ง๋ง ๋๋ฆฌ๋ฏ๋ก ๋๋จธ์ง ์ฐ๊ฒฐ์ ์ํธํํ๋ ๋ฐ ์ฌ์ฉํ ๋์นญํ ์ํธํํค๋ฅผ ํฉ์ํ๋ ๋ฐ ์ฌ์ฉํ๋ค. ์ด ํฉ์๋ TLS ํธ๋์ธ์ดํฌ ๋์ค์ ์ผ์ด๋๋๋ฐ, ํธ๋์ธ์ดํฌ๋ ์ฐ๊ฒฐ์ ์์์ ์ผ์ด๋๋ค.

ALPN
ALPN๋ ClientHello ๋ฉ์์ง์ ์ถ๊ฐ์ ์ธ ํ์ฅ ๊ธฐ๋ฅ์ ๋ํด ํด๋ผ์ด์ธํธ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ํ๋กํ ์ฝ ์ง์์ ์๋ฆด ์ ์๊ฒ ํ๊ณ ,ServerHello ๋ฉ์์ง์๋ ์ถ๊ฐํด ์๋ฒ๊ฐ HTTPS ํ์ ์ดํ์ ์ด๋ค ์ ํ๋ฆฌ์ผ์ด์ ํ๋กํ ์ฝ์ ์ฌ์ฉํ ์ง ํ์ ํ ์ ์๊ฒ ํ๋ค.

ALPN์ ๊ฐ๋จํ๊ณ ๋ ์ด์์ ์ด๋ค ๋ผ์ด๋ ๋๋ฆฝ, ๋ฆฌ๋๋ ์ , ๊ทธ ์ธ์ ์ ๊ทธ๋ ์ด๋ ์ง์ฐ์ ์ถ๊ฐํ์ง ์๊ณ ๋ ๊ธฐ์กด HTTPS ํ์ ๋ฉ์์ง์ ๋ํด HTTP/2 ์ฌ์ฉ ์ฌ๋ถ๋ฅผ ํฉ์ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ค.
ALPN์ ์ ์ผํ ๋ฌธ์
๋น๊ต์ ์๋ก์ด ํ๋กํ ์ฝ์ด๊ธฐ ๋๋ฌธ์ ๋ณดํธ์ ์ผ๋ก ์ง์๋์ง ์์ผ๋ฉฐ, ํนํ ์ค๋๋ TLS ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํํ ์๋ฒ ์ธก์์ ์ง์์ด ์๋์ง ์๋๋ค๋ ์ ์ด๋ค.
ALPN์ธ ์ง์๋์ง ์์ผ๋ฉด ์๋ฒ๋ ๋ณดํต ํด๋ผ์ด์ธํธ๊ฐ HTTP/2๋ฅผ ์ง์ํ์ง ์๋๋ค๊ณ ๊ฐ์ ํ๋ฉฐ HTTP/1.1์ ์ฌ์ฉํ๋ค.
NPN
ALPN์ ์ ์ ์ NPN(Next Protocol Negotiation)
NPN์์๋ ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์ฉ๋๋ ํ๋กํ ํด์ ๊ฒฐ์ ํ์ง๋ง ALPN์์๋ ์๋ฒ๊ฐ ์ ํ๋ค๋ ์ ์ด ์ฃผ๋ ์ฐจ์ด์ ์ด๋ค.

HTTP/1.1 ๊ณผ HTTP/2



HTTP/2 ํธ์๋
HTTP/2 ์๋ฒ ํธ์๋?
HTTP/2 ์๋ฒ ํธ์(์ดํ๋ถํฐ HTTP/2 ํธ์)๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ์ง ์์ ์ถ๊ฐ ๋ฆฌ์์ค๋ฅผ ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ๋ก ๋ณด๋ผ ์ ์๋ค.

๋ผ์ด๋ ํธ๋ฆฝ ์ง์ฐ์ HTML ํ์ด์ง์ ์คํ์ผ์ํธ๋ฅผ <style> ํ๊ทธ๋ก ์ธ๋ผ์ด๋ํ๊ฑฐ๋ <script> ํ๊ทธ๋ฅผ ์ฌ์ฉํด ์๋ฐ์คํฌ๋ฆฝํธ์๋ ๋น์ทํ ์์ ์ ํ๋ ๋ฑ์ ์ฑ๋ฅ ์ต์ ํ๋ก ์ด์ด์ง๋ค.
์ค์ ๋ฆฌ์์ค๋ฅผ ์ธ๋ผ์ด๋ํจ์ผ๋ก์จ ๋ธ๋ผ์ฐ์ ๊ฐ ์ฒซ ํ์ด์ง๋ฅผ ๋ค์ด๋ก๋ํ์๋ง์ ์ถ๊ฐ์ ์ธ ์ค์ ๋ฆฌ์์ค๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๋์ ์ฒซ ๋ ๋๋ง์ ์์ํ๊ณ ํด์ํ ์ ์๋ค.
๋ฆฌ์์ค๋ฅผ ์ธ๋ผ์ด๋ํ๋ ๋ฐ๋ ๋ช ๊ฐ์ง ๋จ์ ์ด ์๋ค.
CSS ๋ฆฌ์์ค์์ ํ์ํ ๋งํผ์ ์ค์ํ ์คํ์ผ๋ง ๋นผ๋ด HTML ํ์ผ์ ๋ผ์ ๋ฃ๋ ๊ฒ์ ์ด ์์ ์ ๋๋ ๋๊ตฌ๊ฐ ์์์๋ ๋ถ๊ตฌํ๊ณ ๋ณต์กํ๋ค. ๋ณต์กํ ๋ฟ๋ง ์๋๋ผ ์ด๋ฐ ์ ์ฐจ๋ ๋ญ๋น๋ค. ์ค์ํ CSS๋ ์บ์๋ผ ๋ค๋ฅธ ํ์ด์ง์ ์ฌ์ฌ์ฉ๋ ์ ์๋ CSS ํ์ผ ํ๋์ ์ ์ฅ๋๊ธฐ๋ณด๋ค๋ ์น ์ฌ์ดํธ์ ๋ชจ๋ ํ์ด์ง์์ ์ฌ์ฌ์ฉ๋ ์ ์๋ CSS ํ์ผ ํ๋์ ์ ์ฅ๋๊ธฐ๋ณด๋ค๋ ์น ์ฌ์ดํธ์ ๋ชจ๋ ํ์ด์ง์ ์ค๋ณต๋ผ ์ ์ฅ๋๋ค. ๋ ๋์ ์ ์ ์ธ๋ผ์ธ๋ ์ค์ CSS๊ฐ ๋ณดํต ๋์ค์ ๋ก๋๋๋ ์ฃผ CSS ํ์ผ์ ์ฌ์ ํ ํฌํจ๋๋ค๋ ์ ์ด๋ค. ํ์ด์ง๋ง๋ค ์ค๋ณต๋ ๋ฟ๋ง ์๋๋ผ ํ์ด์ง ์์์๋ ์ค๋ณต๋๋ค.
์ค์ํ์ง ์์ CSSํ์ผ๋ ๋ชจ๋ ๋ก๋ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅด ์ฌ์ฉํด์ผ ํ๋ ์๊ตฌ ์ฌํญ์ ํฌํจํ๋ค. ๊ฒ๋ค๊ฐ ์ด ์ค์ํ CSSํ์ผ ์ค ์ด๋ค ๊ฒ์ด๋ ๋ณ๊ฒฝํ๋ ค ํ๋ค๋ฉด ํ๋์ ๊ณตํต CSSํ์ผ๋ง ๊ฐฑ์ ํ๋ ๋์ ๋ชจ๋ ํ์ด์ง๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋ค

HTTP/2 ํธ์๋ HTTP๊ฐ ํญ์ โํ๋์ ์์ฒญ = ํ๋์ ์๋ตโ์ด๋ผ๋ ํจ๋ฌ๋ค์์ ๊นจ๋จ๋ฆฐ๋ค. HTTP/2 ํธ์๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ฒ๊ฐ ํ๋์ ์์ฒญ์ ๋ํด ์ฌ๋ฌ ์๋ต์ผ๋ก ๋ตํ ์ ์๋ค.

HTTP ํธ์๊ฐ ์น์์ผ์ด๋ SSE๋ฅผ ๋์ฒดํ๋๊ฐ?
HTTP/2๋ ์๋ฐํ๊ฒ ์๋ฐฉํฅ์ ์๋๋ค.
๋ชจ๋ ๊ฒ์ ์ฌ์ ํ ํด๋ผ์ด์ธํธ ์ธก์ ์์ฒญ์์ ์์๋๋ค. ํธ์๋ ๋ฆฌ์์ค๋ ์ฒซ ์์ฒญ์ ๋ํ ์๋ต์ ์ถ๊ฐ ์๋ต์ ๋ง๋ค์ด์ง๋ค.
์ฒญ ์์ฒญ์ด ์ข ๋ฃ๋๋ฉด ์คํธ๋ฆผ์ด ๋ซํ๊ณ , ๋ค๋ฅธ ํด๋ผ์ด์ธํธ ์์ฒญ์ด ์๋ค๋ฉด ๋ ์ด์ ์ด๋ค ๋ฆฌ์์ค๋ ํธ์๋ ์ ์๋ค.
๋งํฌ ํค๋๋ฅผ ์ฌ์ฉํด ๋ค์ด์คํธ๋ฆผ ์์คํ
์์ ํธ์



์ด ๊ทธ๋ฆผ์ HTTP/2 ์ฐ๊ฒฐ์ ํตํด ์๋ฌด๊ฒ๋ ์ก์ ๋๊ฑฐ๋ ์์ ๋์ง ์์ ํฐ ๊ณต๋ฐฑ์ ๋ณด์ฌ์ฃผ๋๋ฐ, ์ด๋ ๋ญ๋น๋ฉฐ HTTP/2๊ฐ ํด๊ฒฐํ๋ ค๊ณ ํ๋ HOL(Head-Of-Line) ๋ธ๋กํน ๋ฌธ์ ๋ฅผ ์ฐ์์ํจ๋ค.

H2PushResource์ ๊ฐ์ ์น์๋ฒ์ ์ด๋ฅธ ํธ์ ๋ช ๋ น์ ์ฌ์ฉํ๋ ๋ฐ ๋ฐ๋ฅธ ๋จ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ด๋ฌํ ํธ์๋ฅผ ๊ฐ์ํ๊ฒ ํ ์ ์์ผ๋ฉฐ, ์ ํ๋ฆฌ์ผ์ด์ ์ด ํธ์์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๊ธฐ์ ์ต์ ์ ์์น์ผ ๊ฒ์ด๋ผ๋ ์ ์ด๋ค. ์ด ์ํฉ์ ํด๊ฒฐํ๊ณ ์ ์๋ก์ด HTTP ์ํ ์ฝ๋(103 Early Hint)๋ฅผ ์ฌ์ฉํด์ ํ๋ฆฌ์ฝ๋ HTTP ๋งํฌ ํค๋๋ฅผ ํตํ ๋ฆฌ์์ค ์๊ตฌ ์ฌํญ์ ๋ ์ด๋ฅด๊ฒ ์์ํ ์ ์๋ค.
์ด ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ฉด ํค๋๋ง ์๋ ์ด๋ฅธ ์๋ต์ ๋ณด๋ผ ์ ์์ผ๋ฉฐ , ๋๋ค์์๋ ํ์ค 200 ๋ฑ๋ต ์ฝ๋๊ฐ ๋ฐ๋ผ์จ๋ค.

๋ธ๋ผ์ฐ์ ์์ ํธ์ ์บ์ ๋์ ๋ฐฉ์
ํธ์๋ ๋ฆฌ์์ค๋ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฆฌ์์ค๋ฅผ ์์ฒญํ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๋ณ๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ณด๊ด๋๋๋ฐ, ์ฌ๊ธฐ์ ๋ฆฌ์์ค๊ฐ ํ์ด์ง๋ก ๋ก๋๋๋ค.
์บ์ ํค๋๊ฐ ์ค์ ๋ ๊ฒฝ์ฐ ๋ณดํต ๋์ ๊ฐ์ด ๋์ค์ ์ฌ์ฌ์ฉํ ์ฉ๋๋ก ๋ธ๋ผ์ฐ์ ์ HTTP ์บ์๋ ์ ์ฅ๋๋๋ค.
๋์ ๋๋ ์์ธ ์ฌํญ์ ํฌ๋ก๋ฏธ์ ๊ธฐ๋ฐ ๋ธ๋ผ์ฐ์ (Chromium-based browers)๋ ์ ๋ขฐํ์ง ์๋ ์ธ์ฆ์์ ๋ํ ๋ฆฌ์์ค๋ฅผ ์บ์ํ์ง ์๋๋ค๋ ์ ์ด๋ค.
์ธ์ฆ์ ์ค๋ฅ๋ฅผ ์ฐพ์๋ธ ๊ฒฝ์ฐ์๋ ์ฌ์ ํ ์บ์๊ฐ ์ฌ์ฉ๋์ง ์๋๋ค.

์ด๋ฏธ์ง ์บ์๋ ์๋ช ์ด ์งง์ ๋ฉ๋ชจ๋ฆฌ์์ ์บ์๋ก, ํ์ด์ง์ ๋ํ ์บ์๋ค.
์๋ฅผ ๋ค๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ํ์ด์ง์์ ๋๋ฒ ์ฐธ์กฐํ๋ ์ด๋ฏธ์ง๋ฅผ ๋๋ฒ ๊ฐ์ ธ์ค์ง ์๊ณ ํ๊ณ ์ ์ฌ์ฉ๋๋ค. ์ฌ์ฉ์๊ฐ ํ์ด์ง์์ ๋ค๋ฅธ ๊ณณ์ผ๋ก ๋ธ๋ผ์ฐ์งํ๋ฉด ์บ์๋ ์์ด์ง๋ค.
ํ๋ฆฌ๋ก๋ ์บ์๋ ๋ ํ๋์ ์๋ช ์ด ์งง์ ๋ฉ๋ชจ๋ฆฌ์์ ์บ์๋ก, ํ๋ฆฌ๋ก๋๋ ๋ฆฌ์์ค๋ฅผ ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ๋ค์ ํ ๋ฒ ์ด ์บ์๋ ํ์ด์ง์ ํน์ ์ ์ด๋ค. ๋ค๋ฅธ ํ์ด์ง๋ฅผ ์ํด ํ๋ฆฌ๋ก๋ํ์ง ๋ง๋ผ, ์ฌ์ฉ๋์ง ์์ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
์๋น์ค ์์ปค๋ ์น ํ์ด์ง์ ๋ณ๊ฐ๋ก ์คํ๋๊ณ ์น ํ์ด์ง์ ์น ์ฌ์ดํธ์ ์ค๊ฐ๊ฐ ์ญํ ์ ํ๋ ์๋นํ ์๋ก์ด ๋ฐฑ๊ทธ๋ผ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ค. ์๋น์ค ์์ปค๋ฅผ ์ฌ์ฉํ๋ฉด ์น ์ฌ์ดํธ๊ฐ ๋์ฑ ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ค. ์๋น์ค ์์ปค๋ฅผ ์ฌ์ฉํ๋ฉด ์น ์ฌ์ดํธ๊ฐ ๋์ฑ ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ฒ๋ผ ๋์ํ๊ฒ ํ ์ ์๋๋ฐ, ์๋ฅผ ๋ค์ด ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ์์์ ๋์กฐ์ฐจ ๊ทธ๋ ๋ค. ์๋น์ค ์์ปค๋ ๋๋ฉ์ธ์ ์ฐ๊ฒฐ๋ ๊ณ ์ ํ ์บ์๋ฅผ ๊ฐ๋๋ค.
HTTP ์บ์๋ ๊ฐ๋ฐ์ ๋๋ถ๋ถ์ด ์๋ ์ค์ ์บ์๋ฉฐ, ๋์คํฌ ๊ธฐ๋ฐ์ ์ง์์ฑ ์บ์๋ก ๋ธ๋ผ์ฐ์ ์์ ๊ณต์ ๋๊ณ ,๋ชจ๋ ๋๋ฉ์ธ์ ๋ํด ์ฌ์ฉ๋๋ ์ ํ๋ ํฌ๊ธฐ๋ฅผ ๊ฐ๋๋ค.
HTTP/2 ํธ์ ์บ์๋ ์๋ช ์ด ์งง์ ๋ฉ๋ชจ๋ฆฌ์์ ์บ์๋ก, ์ฐ๊ฒฐ์ ๋งค์ฌ ์์ผ๋ฉฐ ๋ง์ง๋ง์ผ๋ก ๊ฒ์ฌ๋๋ค.
Reference
์ฑ : HTTP/2 in Action
Last updated