HTTP ์ฟ ํค(์น ์ฟ ํค, ๋ธ๋ผ์ฐ์ ์ฟ ํค)๋ ์๋ฒ๊ฐ ์ฌ์ฉ์์ ์น ๋ธ๋ผ์ฐ์ ์ ์ ์กํ๋ ์์ ๋ฐ์ดํฐ ์กฐ๊ฐ์ด๋ค. ๋ธ๋ผ์ฐ์ ๋ ๊ทธ ๋ฐ์ดํฐ ์กฐ๊ฐ๋ค์ ์ ์ฅํด ๋์๋ค๊ฐ, ๋์ผํ ์๋ฒ์ ์ฌ์์ฒญ ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ํจ๊ป ์ ์กํ๋ค. ์ฟ ํค๋ ๋ ์์ฒญ์ด ๋์ผํ ๋ธ๋ผ์ฐ์ ์์ ๋ค์ด์๋์ง ์๋์ง๋ฅผ ํ๋จํ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ค. ex) ์ฌ์ฉ์์ ๋ก๊ทธ์ธ ์ํ๋ฅผ ์ ์ง. ์ํ๊ฐ ์๋(stateless) HTTP ํ๋กํ ์ฝ์์ ์ํ ์ ๋ณด๋ฅผ ๊ธฐ์ต์์ผ์ฃผ๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ์ธ์ ์ด๋ ํต์ ์ ํ๊ธฐ ์ํด ์๋ก ์ฐ๊ฒฐ๋ ์๊ฐ๋ถํฐ ํต์ ์ ๋ง์น ๋๊น์ง์ ๊ธฐ๊ฐ
- HTTP ์ธ์ ์ด๋ ํด๋ผ์ด์ธํธ๊ฐ ์น์๋ฒ์ ์ฐ๊ฒฐ๋ ์๊ฐ๋ถํฐ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์ ์๋ฒ์์ HTTP ํต์ ์ ๋๋ผ ๋๊น์ง์ ๊ธฐ๊ฐ
๊ณผ๊ฑฐ์๋ ํด๋ผ์ด์ธํธ ์ธก์ ์ ๋ณด๋ฅผ ์ ์ฅํ ์ ์ผํ ๋ฐฉ๋ฒ์ด์์ ๋ ์ฟ ํค๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ์ง๋ง ์ง๊ธ์ mordern storage APIs๋ฅผ ์ฌ์ฉํด ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๊ฒ์ ๊ถ์ฅํ๋ค. ๋ชจ๋ ์์ฒญ๋ง๋ค ์ฟ ํค๊ฐ ํจ๊ป ์ ์ก๋๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ ์์ธ์ด ๋ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ ๋ณด๋ฅผ ์ ์ฅํ๋ ค๋ฉด Mordern APIs์ ์ข
๋ฅ์ธ ์น ์คํ ๋ฆฌ์ง API ( localStorage์ sessionStorage ) ์ IndexedDB๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
์ฌ์ง ์ถ์ฒ
HTTP ์์ฒญ์ ์์ ํ ๋, ์๋ฒ๋ ์๋ต๊ณผ ํจ๊ป set-Cookie ํค๋๋ฅผ ์ ์กํ ์ ์๋ค. ๋ณดํต ๋ธ๋ผ์ฐ์ ์ ์ํด ์ ์ฅ๋๊ณ , ์ดํ ๊ฐ์ ์๋ฒ์ ์ํด ๋ง๋ค์ด์ง ์์ฒญ๋ค์ Cookie HTTP ํค๋ ์์ ํฌํจ๋์ด ์ ์ก๋๋ค.
๊ฐ๋จํ ์ฟ ํค๋ ๋ค์๊ณผ ๊ฐ์ด ์ค์ ๋ ์ ์๋ค. HTTP ์๋ตํค๋๋ ์๋ฒ๋ก๋ถํฐ ์ฌ์ฉ์ ์์ด์ ํธ๋ก ์ ์ก๋๋ค.
Set-Cookie: <cookie-name>=<cookie-value>
์๋ฒ ํค๋๋ ํด๋ผ์ด์ธํธ์๊ฒ ์ฟ ํค๋ฅผ ์ ์ฅํ๋ผ๊ณ ์ ๋ฌ ์๋ฒ๋ก ์ ์ก๋๋ ๋ชจ๋ ์์ฒญ๊ณผ ํจ๊ป, ๋ธ๋ผ์ฐ์ ๋ Cookieํค๋๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ก ์ด์ ์ ์ ์ฅํ๋ ๋ชจ๋ ์ฟ ํค๋ค์ ํ์
์ธ์ ์ฟ ํค๋ ํ์ฌ ์ธ์ ์ด ๋๋ ๋ ์ญ์ (ํ์ด์ง ๋ซํ ๋). ๋ธ๋ผ์ฐ์ ๋ ํ์ ์ธ์ ์ด ๋๋๋ ์์ ์ ์ ์ํ๋ฉฐ, ์ด๋ค ๋ธ๋ผ์ฐ์ ๋ค์ ์ฌ์์ํ ๋ ์ธ์ ์ ๋ณต์ํด ์ธ์ ์ฟ ํค๋ฅผ ๋ฌดํ์ผ๋ก ์กด์ฌํ ์ ์๋๋ก ํ๋ค.
์์์ ์ธ ์ฟ ํค๋ Expires ์์ฑ์ ๋ช ์๋ ๋ ์ง์ ์ญ์ ๋๊ฑฐ๋ Max-Age ์์ฑ์ ๋ช ์๋ ๊ธฐ๊ฐ ์ดํ์ ์ญ์ ๋๋ค.
์ฟ ํค์ ์ค์ฝํ๋ Domain๊ณผ Path๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ ํ ์ ์๋ค.