 ์ ํ๋ธ URL์ `youtube.com`์ด๋ค. ๊ทธ๋ฐ๋ฐ ์ ํ๋ธ ์ธ๋ค์ผ URL์ ์ `i.ytimg.com`๋ก ์์ํ ๊น? # ์ ์ ๋ฆฌ์์ค๋? ํ๋ ์น ํ๊ฒฝ์์ ์ ์ ๋ฆฌ์์ค๋ผ ํจ์ ์์, ์ฌ์ง, ํฐํธ, CSSยทJS ํ์ผ ๋ฑ ๋น๋ฒํ๊ฒ ๋ณ๋๋์ง ์๋ ์๋ฃ๋ฅผ ์ง์นญํ๋ค. ์ด์ ๋๋ถ์ด, ์ฌ์ฉ์๊ฐ ์ ๋ก๋ํ๋ ์๋ฃ ๋ํ ์ ์ ๋ฆฌ์์ค์ ํ ์๋ก ๋ค ์ ์๋ค. ์ ์ ๋ฆฌ์์ค๋ ๋จ์ํ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๊ธฐ ์ํ ๋ชฉ์ ์ ํ์ ๋๋ฏ๋ก, ๋ณต์กํ ๋น์ฆ๋์ค ๋ก์ง ์์ด ์ ์ํ๊ณ ํจ์จ์ ์ผ๋ก ์ ๋ฌ๋๋ ๊ฒ์ด ๋ฐ๋์งํ๋ค. # ์ ์ ๋ฆฌ์์ค ์ ์ฉ ๋๋ฉ์ธ ์ด์ ์ฌ๋ก - ์ ํ๋ธ. ์์ ์ธ๋ค์ผ์ด ytimg.com์์ ํธ์คํ ๋๋ค. - ๋ค์ด๋ฒ. pstatic.net์ด๋ผ๋ ๋๋ฉ์ธ์ ์ฌ์ฉ ์ค์ด๋ค. - ์คํ ์ค๋ฒํ๋ฌ์ฐ & ์คํ ์ต์ค์ฒด์ธ์ง. sstatic.net๋ฅผ ๊ณต์ ํ์ฌ ์ฌ์ฉํ๊ณ ์๋ค. - ์ ํ ์น์ฌ์ดํธ. cdn-apple.com๋ฅผ ์ฌ์ฉ ์ค์ด๋ค. - ๊นํ๋ธ. githubusercontent.com์ githubassets.com๋ฅผ ์ฌ์ฉ ์ค์ด๋ค. # ์ด์ : ์ฟ ํค์ ์ํ ๋คํธ์ํฌ ํธ๋ํฝ ์ต์ ํ ์ฟ ํค(Cookie)๋, ์น ๋ธ๋ผ์ฐ์ ๊ฐ ํน์ ๋๋ฉ์ธ์ ๋ํด ๋ณด์ ํ๋ ์๊ท๋ชจ์ ๋ฐ์ดํฐ๋ก์, ๋ณดํต ์ฌ์ฉ์ ์ค์ , ์ธ์ฆ ์ ๋ณด, ๋๋ ๊ด๊ณ ์ถ์ ๋ชฉ์ ์ผ๋ก ํ์ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ ์ ์ ์ธ์ฆ ์ ๋ณด๋ฅผ example.com ๋๋ฉ์ธ ์ฟ ํค๋ก ๊ด๋ฆฌํ๋ค๊ณ ๊ฐ์ ํด๋ณด์: ``` GET /login HTTP/1.1 Host: example.com POST /login/submit HTTP/1.1 Host: example.com GET /post/25 HTTP/1.1 Host: example.com Cookie: PHPSESSID=298zf09hf012fh2; GET /post/25/comment/submit HTTP/1.1 Host: example.com Cookie: PHPSESSID=298zf09hf012fh2; ``` ์ฟ ํค๊ฐ ํ ๋ฒ ์ค์ ๋๋ฉด ํด๋น ๋๋ฉ์ธ์ ์ด๋ฃจ์ด์ง๋ ๋ชจ๋ ์์ฒญ์ ์๋์ผ๋ก ํฌํจ๋์ด ์ ์ก๋๋ฏ๋ก, ๋จ์ ์ด๋ฏธ์ง์ ๊ฐ์ ์ ์ ๋ฆฌ์์ค ์์ฒญ ์์๋ ๋ถํ์ํ ๋ฐ์ดํฐ๊ฐ ํจ๊ป ์ก์ ๋์ด ๋คํธ์ํฌ ํธ๋ํฝ์ ์ฆ๊ฐ์ํฌ ์ฐ๋ ค๊ฐ ์๋ค. ``` GET /post/25 HTTP/1.1 Host: example.com Cookie: PHPSESSID=298zf09hf012fh2; GET /images/logo.png HTTP/1.1 Host: example.com Cookie: PHPSESSID=298zf09hf012fh2; GET /images/facebook-icon.png HTTP/1.1 Host: example.com Cookie: PHPSESSID=298zf09hf012fh2; GET /images/github-icon.png HTTP/1.1 Host: example.com Cookie: PHPSESSID=298zf09hf012fh2; ``` ๋ฐ๋ฉด, ์ ์ ๋ฆฌ์์ค๋ฅผ ์ ๊ณตํ๋ ๋๋ฉ์ธ์ ๋ณ๋๋ก ์ค์ ํ ๊ฒฝ์ฐ, ์๋์ ๊ฐ์ด ์ฟ ํค ์ ์ก์ด ๋ฐฐ์ ๋์ด ๋ถํ์ํ ํธ๋ํฝ์ ๋ฐฉ์งํ ์ ์๋ค: ``` GET /post/25 HTTP/1.1 Host: example.com Cookie: PHPSESSID=298zf09hf012fh2; GET /images/logo.png HTTP/1.1 Host: example-cdn-server.com ``` ๋ฌผ๋ก , ์ฟ ํค์ โpathโ ์์ฑ์ด๋ ์๋ธ๋๋ฉ์ธ์ ํ์ ์ํค๋ ๋ฐฉ๋ฒ์ผ๋ก๋ ์ฟ ํค ์ ์ก์ ์ ์ดํ ์ ์๋ค. ``` GET /post/25 HTTP/1.1 Host: blog.example.com Cookie: PHPSESSID=298zf09hf012fh2; GET /images/logo.png HTTP/1.1 Host: cdn.example.com ``` ํ์ง๋ง ์ค๋ฌด์์๋ ํ๋์ ๋๋ฉ์ธ์ ๊ธฐ๋ฐ์ผ๋ก ๋ค์์ ์๋ธ๋๋ฉ์ธ ๊ฐ์ ์ธ์ฆ ์ธ์ ์ ๊ณต์ ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ์ ์ ์ ๋ฆฌ์์ค ์ ์ฉ ๋๋ฉ์ธ์ ๋ณ๋ ๋ง๋ จํ๋ ๊ฒ์ด ๋ณดํธ์ ์ธ ๋์ฑ ์ด๋ผ ํ ์ ์๋ค. # ๊ฒฐ๋ก ์์ปจ๋, ์ฟ ํค๋ฅผ ์ฌ์ฉํ๋ ์น ์๋น์ค์์๋ ์ ์ ๋ฆฌ์์ค๋ฅผ ๋ณ๋์ ๋๋ฉ์ธ์์ ํธ์คํ ํจ์ผ๋ก์จ ๋ถํ์ํ ์ฟ ํค ์ ์ก์ผ๋ก ์ธํ ๋คํธ์ํฌ ํธ๋ํฝ ๋ถ๋ด์ ์ค์ผ ์ ์๋ค. ๋ค๋ง, ์ด๋ฌํ ๋ณ๋ ๋๋ฉ์ธ ์ด์์ ์ถ๊ฐ์ ์ธ ๊ด๋ฆฌ ๋น์ฉ๊ณผ ๋ณต์ก์ฑ์ ์๋ฐํ๋ฏ๋ก, ์๋น์ค์ ๊ท๋ชจ์ ์๊ตฌ์ ๋ฐ๋ผ ์ ์คํ ๊ฒํ ํ์ฌ์ผ ํ ๊ฒ์ด๋ค. # ์ฐธ๊ณ ์๋ฃ [IETF - RFC 6265: HTTP State Management Mechanism](https://datatracker.ietf.org/doc/html/rfc6265) [yahoo! developer - Best Practices for Speeding Up Your Web Site](https://developer.yahoo.com/performance/rules.html?guccounter=1#cookie_free) [MDN Web Docs - Content Delivery Network](https://developer.mozilla.org/en-US/docs/Glossary/CDN)