๐ป
์ฟ ํค(Cookie)์ ์ธ์ (Session)์ ์ฐจ์ด ๋ณธ๋ฌธ
์ฟ ํค์ ์ธ์ ์ ์ฌ์ฉํ๋ ์ด์ ๋?
HTTP ํ๋กํ ์ฝ ์ ํน์ง์ธ
1) ๋น์ฐ๊ฒฐ์งํฅ(Connectionless)
: HTTP๋ ๋จผ์ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์์ฒญ(request)์ ๋ณด๋ด๋ฉด, ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ์์ฒญ์ ๋ง๋ ์๋ต(response)๋ฅผ ๋ณด๋ด๊ณ ์ ์์ ๋๋๋ค.
2) ์ํ์ ๋ณด์ ์ง์ํจ(Stateless)
: ์ฐ๊ฒฐ์ ๋๋ ์๊ฐ ํด๋ผ์ด์ธํธ์ ์๋ฒ์ ํต์ ์ด ๋๋๋ฉฐ ์ํ ์ ๋ณด๋ ์ ์งํ์ง ์๋ ํน์ฑ์ด ์๋ค.
๋น์ฐ๊ฒฐ์งํฅ์ด๋ผ๋ ํน์ฑ ๋๋ถ์ ๊ณ์ํด์ ํต์ ์ฐ๊ฒฐ์ ์ ์งํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ฆฌ์์ค ๋ญ๋น๊ฐ ์ค์ด๋๋ ๊ฒ์ ์ฅ์ ์ด์ง๋ง ํต์ ํ ๋๋ง๋ค ์๋ก ์ปค๋ฅ์ ์ ์ด๊ธฐ ๋๋ฌธ์ ํด๋ผ์ด์ธํธ๋ ๋ด๊ฐ ๋๊ตฌ์ธ์ง ์ธ์ฆ์ ๊ณ์ํด์ผํ๋ ๋จ์ ์ด ์๊ธด๋ค.
https://jeong-pro.tistory.com/80
์ด๋ฌํ HTTP ํ๋กํ ์ฝ์ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด์ ์ฟ ํค์ ์ธ์ ์ ์ฌ์ฉํ๋ค.
์ฟ ํค(Cookie)
- ํด๋ผ์ด์ธํธ ๋ก์ปฌ(ํ๋)์ ์ ์ฅ๋๋ ํค์ ๊ฐ์ด ๋ค์ด์๋ ์์ ๋ฐ์ดํฐ ํ์ผ์ด๋ค.
- ์ฟ ํค์๋ ์ด๋ฆ, ๊ฐ, ๋ง๋ฃ๋ ์ง(์ฟ ํค ์ ์ฅ๊ธฐ๊ฐ), ๊ฒฝ๋ก ์ ๋ณด๊ฐ ๋ค์ด์๋ค.
- ์ฟ ํค๋ ์ผ์ ์๊ฐ๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ค. (๋ก๊ทธ์ธ ์ํ ์ ์ง์ ํ์ฉ)
- ์ฟ ํค๋ ํด๋ผ์ด์ธํธ์ ์ํ ์ ๋ณด๋ฅผ ๋ก์ปฌ์ ์ ์ฅํ๋ค๊ฐ ์ฐธ์กฐํ๋ค.
- ์ฟ ํค ํ๋ก์ธ์ค
1. ๋ธ๋ผ์ฐ์ ์์ ์นํ์ด์ง ์ ์
2. ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ์นํ์ด์ง๋ฅผ ๋ฐ์ผ๋ฉด์ ์ฟ ํค๋ฅผ ํด๋ผ์ด์ธํธ ๋ก์ปฌ(ํ๋)์ ์ ์ฅ
3. ํด๋ผ์ด์ธํธ๊ฐ ์ฌ ์์ฒญ์ ์นํ์ด์ง ์์ฒญ๊ณผ ํจ๊ป ์ฟ ํค๊ฐ๋ ์ ์ก
4. ์ง์์ ์ผ๋ก ๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ฒ๋ผ ์ฌ์ฉ
- ํด๋ผ์ด์ธํธ์ 300๊ฐ๊น์ง ์ฟ ํค์ ์ฅ ๊ฐ๋ฅ, ํ๋์ ๋๋ฉ์ธ๋น 20๊ฐ์ ๊ฐ๋ง ๊ฐ์ง ์ ์์, ํ๋์ ์ฟ ํค๊ฐ์ 4KB๊น์ง ์ ์ฅ. Response Header์ Set-Cookie ์์ฑ์ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ์ ์ฟ ํค๋ฅผ ๋ง๋ค ์ ์๋ค.
์ฟ ํค๋ ์ฌ์ฉ์๊ฐ ๋ฐ๋ก ์์ฒญํ์ง ์์๋ ๋ธ๋ผ์ฐ์ ๊ฐ Request์์ Request Header๋ฅผ ๋ฃ์ด์ ์๋์ผ๋ก ์๋ฒ์ ์ ์กํ๋ค.
- ์)
์๋๋ก๊ทธ์ธ, ํ์ ์์ "์ค๋ ๋ ์ด์ ์ด ์ฐฝ์ ๋ณด์ง ์์" ์ฒดํฌ
์ผํ๋ชฐ์ ์ฅ๋ฐ๊ตฌ๋
์ธ์ (Session)
- ์ผ์ ์๊ฐ ๋์ ๊ฐ์ ๋ธ๋ผ์ฐ์ ๋ก๋ถํฐ ๋ค์ด์ค๋ ์ผ๋ จ์ ์๊ตฌ๋ฅผ ํ๋์ ์ํ๋ก ๋ณด๊ณ ๊ทธ ์ํ๋ฅผ ์ ์งํ๋ ๊ธฐ์
- ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์น ์๋ฒ์ ์ ์ํ ์ดํ๋ก ๋ธ๋ผ์ฐ์ ๋ฅผ ์ข ๋ฃํ ๋๊น์ง ์ ์ง๋๋ ์ํ
- ํด๋ผ์ด์ธํธ๊ฐ Request๋ฅผ ๋ณด๋ด๋ฉด, ํด๋น ์๋ฒ์ ์์ง์ด ํด๋ผ์ด์ธํธ์๊ฒ ์ ์ผํ ID๋ฅผ ๋ถ์ฌํ๋ ๋ฐ ์ด๊ฒ์ด ์ธ์ ID์ด๋ค.
- ์ธ์ ํ๋ก์ธ์ค
1. ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ ์์ ์ธ์ ID๋ฅผ ๋ฐ๊ธ
2. ์๋ฒ์์๋ ํด๋ผ์ด์ธํธ๋ก ๋ฐ๊ธํด์ค ์ธ์ ID๋ฅผ ์ฟ ํค๋ฅผ ์ฌ์ฉํด ์ ์ฅ (JSESSIONID)
3. ํด๋ผ์ด์ธํธ๋ ๋ค์ ์ ์ํ ๋, ์ด ์ฟ ํค(JSESSIONID)๋ฅผ ์ด์ฉํด์ ์ธ์ ID๊ฐ์ ์๋ฒ์ ์ ๋ฌ
์ฆ, ์ธ์ ์ ๊ตฌ๋ณํ๊ธฐ ์ํด ID๊ฐ ํ์ํ๊ณ ๊ทธ ID๋ง ์ฟ ํค๋ฅผ ์ด์ฉํด์ ์ ์ฅํด๋๋๋ค. (์ฟ ํค์ฌ์ฉ) ์ฟ ํค๋ ์๋์ผ๋ก ์๋ฒ์ ์ ์ก๋๋๊น ์๋ฒ์์ ์ธ์ ์์ด๋์ ๋ฐ๋ฅธ ์ฒ๋ฆฌ๋ฅผ ํ ์ ์์
์๋ฅผ ๋ค๋ฉด, ๊ฒ์ํ์ ๊ธ์ ์์ฑํ ๋ ์์ฑ ๋ฒํผ์ ๋๋ฅด๋ฉด ์ธ์ ์ ์๋ ์์ด๋๋ฅผ ์ฐธ์กฐํด์ ์์ฑ์๋ฅผ ์ง์ ํ๊ฒ ํ๋ค.
- ์)
๋ก๊ทธ์ธ ์ ๋ณด ์ ์ง
์ ๋ฆฌ
์ฟ ํค์ ์ธ์ ์ ์ฐจ์ด๋
1) ์ ์ฅ ์์น -> ์ฟ ํค๋ ํด๋ผ์ด์ธํธ์ ํ์ผ๋ก ์ ์ฅ, ์ธ์ ์ ์๋ฒ์ ์ ์ฅ
2) ๋ณด์ -> ์ธ์ ์ด ๋ณด์์ ๋ ์ข๋ค.
3) ๋ผ์ดํ ์ฌ์ดํด -> ์ฟ ํค๋ ์ฟ ํค์ญ์ ํ๊ธฐ ์ ๊น์ง ์ ์ง๋์ง๋ง, ์ธ์ ์ ๋ธ๋ผ์ฐ์ ๊ฐ ์ข ๋ฃ๋๋ฉด ๋ง๋ฃ์๊ฐ์ ์๊ด์์ด ์ญ์
4) ์๋ -> ์ธ์ ์ด ๋น๊ต์ ๋๋ฆฌ๋ค.
* ์ธ์ ์ด ์ข์๋ฐ ์ ์ฟ ํค๋ฅผ ์ฌ์ฉํ๋?
-> ์ธ์ ์ ์๋ฒ์ ์์์ ์ด์ฉํ๊ธฐ ๋๋ฌธ์ ๋ง์ด ์ฌ์ฉํ๋ฉด ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฐ๋นํ ์ ์์ด์ง๊ณ , ์๋๊ฐ ๋๋ ค์ง ์ ์๋ค.
'TIL > ๊ฐ๋ฐ์์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ธํฐํ์ด์ค(Interface)๋? - UI/GUI/ API (0) | 2020.05.26 |
---|---|
์ ์์ผ(Agile)์ด ๊ทธ๋์ ๋ญ๋ฐ? (0) | 2020.04.21 |