์ฟ ํค(Cookie)์ ์ธ์ (Session)
1. HTTP ํ๋กํ ์ฝ ํน์ง
- ๋น์ฐ๊ฒฐํ(Connectionless): ํ๋์ ์ธ์ ์์์ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ Request์ Response์ ์ํํ๋ฉด ์ธ์ ์ด ๋์ด์ง๋ค.
- ๋ฌด์ํ์ฑ(Stateless): ์ฐ๊ฒฐ์ ๋๋ ์๊ฐ ํด๋ผ์ด์ธํธ์ ์๋ฒ์ ํต์ ์ด ๋๋๋ฉฐ ์ํ ์ ๋ณด๋ ์ ์งํ์ง ์๋๋ค.
๋น์ฐ๊ฒฐํ์ผ๋ก ๋ฆฌ์์ค ๋ญ๋น๊ฐ ์ค์ด๋๋ ๊ฒ์ ์ฅ์ ์ด์ง๋ง ํต์ ํ ๋๋ง๋ค ์๋ก์ด ์ธ์ ์ ์ด์ด์ผ ํ๋ค๋ ๋จ์ ์ด ์กด์ฌํ๋ค. ์ด 2๊ฐ์ง ํน์ฑ์ ๋ณด์ํ๊ธฐ ์ํด ์ฟ ํค์ ์ธ์ ์ ์ฌ์ฉํ๋ค.
2. ์ฟ ํค(Cookie)
์ฟ ํค๋ ํด๋ผ์ด์ธํธ ๋ก์ปฌ์ ์ ์ฅ๋๋ ์์ ๋ฐ์ดํฐ ํ์ผ๋ก ์ด๋ฆ(ํค), ๊ฐ, ๋ง๋ฃ ๋ ์ง(์ฟ ํค ์ ์ฅ๊ธฐ๊ฐ), ๊ฒฝ๋ก ์ ๋ณด๊ฐ ๋ค์ด์๋ค.
- ์ผ์ ์๊ฐ ๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๊ณ ํด๋ผ์ด์ธํธ์ ์ํ ์ ๋ณด๋ฅผ ๋ก์ปฌ์ ์ ์ฅํ๋ค๊ฐ ์ฐธ์กฐํ๋ค.
- ์๋ ๋ก๊ทธ์ธ, ํ์ ์์ "๋ ์ด์ ์ด ์ฐฝ์ ๋ณด์ง ์์" ์ฒดํฌ, ์ฅ๋ฐ๊ตฌ๋ ๋ฑ
1. ๋ธ๋ผ์ฐ์ ์์ ์น ํ์ด์ง ์ ์
2. ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ์น ํ์ด์ง๋ฅผ ๋ฐ์ผ๋ฉด์ ์ฟ ํค๋ฅผ ํด๋ผ์ด์ธํธ ๋ก์ปฌ์ ์ ์ฅ
3. ํด๋ผ์ด์ธํธ๊ฐ ์ฌ ์์ฒญ ์ ์น ํ์ด์ง ์์ฒญ๊ณผ ํจ๊ป ์ฟ ํค๊ฐ๋ ์ ์ก
4. ์ง์์ ์ผ๋ก ๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ฒ๋ผ ์ฌ์ฉ
3. ์ธ์ (Session)
์ธ์ ์ ์ผ์ ์๊ฐ๋์ ๊ฐ์ ๋ธ๋ผ์ฐ์ ๋ก ๋ค์ด์ค๋ ์๊ตฌ๋ฅผ ํ๋์ ์ํ๋ก ๋ณด๊ณ ๊ทธ ์ํ๋ฅผ ์ ์งํ๋ ๊ธฐ์ ์ด๋ค.
- ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์น ์๋ฒ์ ์ ์ํ ์ดํ๋ก ๋ธ๋ผ์ฐ์ ๋ฅผ ์ข ๋ฃํ ๋๊น์ง ์ ์ง๋๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ Request๋ฅผ ๋ณด๋ด๋ฉด ํด๋น ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ์ ์ผํ ID๋ฅผ ๋ถ์ฌํ๋ ๋ฐ ์ด๊ฒ์ด ์ธ์ ID์ด๋ค.
- ๋ก๊ทธ์ธ ์ ๋ณด ์ ์ง ๋ฑ
1. ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ ์ ์ ์ธ์ ID๋ฅผ ๋ฐ๊ธ
2. ์๋ฒ์์๋ ํด๋ผ์ด์ธํธ๋ก ๋ฐ๊ธํด์ค ์ธ์ ID๋ฅผ ์ฟ ํค(JSESSIONID)๋ฅผ ์ฌ์ฉํด ์ ์ฅ
3. ํด๋ผ์ด์ธํธ๋ ๋ค์ ์ ์ํ ๋, ์ด ์ฟ ํค(JSESSIONID)๋ฅผ ์ด์ฉํด์ ์ธ์ ID๊ฐ์ ์๋ฒ์ ์ ๋ฌ
4. ์ฐจ์ด์