
ํด๋ผ์ด์ธํธ๊ฐ ํ์ด์ง ์์ฒญ
์๋ฒ๊ฐ Request-Header์์ Cookie ํ์ธ ๐ช
Session-ID๊ฐ ์์ ๊ฒฝ์ฐ ์๋ฒ์์ ์์ฑ
Session-ID๋ฅผ ์ฟ ํค์ ์ ์ฅํ์ฌ ํด๋ผ์ด์ธํธ๋ก ์ ๋ฌ
ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์ ์ ์ Session-ID ์ ์ก
์น ์๋ฒ์ ์ํ ์ ๋ณด ์ ์ฅ
์ฟ ํค๋ฅผ ์ฌ์ฉํ ์ธ์ ๊ด๋ฆฌ ๐ช
๋ธ๋ผ์ฐ์ ์ข ๋ฃ ์ ์ธ์ ์ข ๋ฃ
์ ์ฅ ๋ฐ์ดํฐ์ ์ฉ๋ ์ ํ ์์
๊ฐ ํด๋ผ์ด์ธํธ์ ๊ณ ์ ํ Session-ID ๋ถ์ฌ
Session-ID๋ก ํด๋ผ์ด์ธํธ ๊ตฌ๋ถ ๋ฐ ๋ง์ถค ์๋น์ค ์ ๊ณต
๋ธ๋ผ์ฐ์ ๋น ํ๋์ JSESSIONID ํ ๋น
์์ฃผ ์ฌ์ฉ๋๋ ์ ๋ณด๋ Session์ ์ ์ฅ
์ฒซ ๋ฒ์งธ ์์ฒญ: ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์์ฒญ
/index.html์ ์์ฒญํฉ๋๋ค.GET /index.html HTTP/1.1์๋ฒ์ ์๋ต: JSESSIONID ๋ถ์ฌ
HTTP/1.1 200 OK
Set-Cookie: JSESSIONID=mk52gGa3UK71Tx.....๋ ๋ฒ์งธ ์์ฒญ: ํด๋ผ์ด์ธํธ๊ฐ JSESSIONID๋ฅผ ํฌํจํด ์์ฒญ
/user/login.html ํ์ด์ง๋ฅผ ์์ฒญํฉ๋๋ค. GET /user/login.html HTTP/1.1
Cookie: JSESSIONID=mk52gGa3UK71Tx.....DB ์ ๊ทผ ์ต์ํ
๋น ๋ฅธ ์ํ ๊ด๋ฆฌ
๋ณด์ ํฅ์
request.getSession()request.getSession(false)session.setAttribute(String name, Object value)name์ ์์ฑ ์ด๋ฆ, value๋ ์ ์ฅํ ๋ฐ์ดํฐ(๊ฐ์ฒด)์
๋๋ค.session.setAttribute("username", "johnDoe");์ด ์ฝ๋์์๋ username์ด๋ผ๋ ์ด๋ฆ์ผ๋ก "johnDoe"๋ผ๋ ๊ฐ์ ์ธ์
์ ์ ์ฅํฉ๋๋ค.session.getAttribute(String name)name)์ ์ฌ์ฉํด ๊ฐ์ ธ์ค๋ ๋ฉ์๋์
๋๋ค.Object ํ์
์ผ๋ก ๋ฐํ๋๋ฏ๋ก, ์ ์ ํ ํ์
์ผ๋ก ํ๋ณํํด์ผ ํฉ๋๋ค.String username = (String) session.getAttribute("username");session.removeAttribute(String name)session.removeAttribute("username");์ด ์ฝ๋๋ username์ด๋ผ๋ ์ด๋ฆ์ ์์ฑ์ ์ญ์ ํฉ๋๋ค.session.invalidate()session.invalidate();session.getCreationTime()long ํ์
์ ํ์์คํฌํ๋ก ๋ฐํํฉ๋๋ค.long creationTime = session.getCreationTime();session.getLastAccessedTime()long ํ์
์ ํ์์คํฌํ๋ก ๋ฐํํฉ๋๋ค.long lastAccessTime = session.getLastAccessedTime();| ๊ตฌ๋ถ | Session | Cookie |
|---|---|---|
| Type | jakarta.servlet.http.HttpSession (Interface) | jakarta.servlet.http.Cookie (Class) |
| ์ ์ฅ ์์น | ์๋ฒ ๋ฉ๋ชจ๋ฆฌ์ Object๋ก ์ ์ฅ | ํด๋ผ์ด์ธํธ ์ปดํจํฐ์ ํ์ผ๋ก ์ ์ฅ |
| ์ ์ฅ ํ์ | ๋ชจ๋ Object ์ ์ฅ ๊ฐ๋ฅ (Dto, List ๋ฑ ๋ณต์กํ ๋ฐ์ดํฐ๋ ์ ์ฅ ๊ฐ๋ฅ) | ํ์ผ๋ก ์ ์ฅ๋๋ฏ๋ก String ํ์๋ง ๊ฐ๋ฅ |
| ์ฌ์ฉ ์ | ๋ก๊ทธ์ธ ์ ์ฌ์ฉ์ ์ ๋ณด, ์ฅ๋ฐ๊ตฌ๋ ๋ฑ | ์ต๊ทผ ๋ณธ ์ํ ๋ชฉ๋ก, ์๋๋ก๊ทธ์ธ, ํ์ ๋ฉ๋ด ('์ค๋์ ๊ทธ๋ง ์ด๊ธฐ' ์ค์ ) |
| ์ฉ๋ ์ ํ | ์ ํ ์์ | ๋๋ฉ์ธ๋น ์ต๋ 20๊ฐ, ์ฟ ํค 1๊ฐ๋น ์ต๋ 4KB |
| ๋ง๋ฃ ์์ | ํด๋ผ์ด์ธํธ๊ฐ ๋ก๊ทธ์์ํ๊ฑฐ๋ ์ผ์ ์๊ฐ ๋์ ์ธ์ ์ ์ ๊ทผํ์ง ์์ ๋ (web.xml์์ ๋ง๋ฃ ์๊ฐ ์ค์ ) | ์ฟ ํค ์ ์ฅ ์ ์ค์ ๋ ์๊ฐ๊น์ง ์ ์ง (์ค์ ์ด ์์ผ๋ฉด ๋ธ๋ผ์ฐ์ ์ข ๋ฃ ์ ๋ง๋ฃ) |
| ๊ณตํต์ | JSP์ ๊ฐ์ ํ๋ก์ ํธ ์ ์ญ์์ ์ฌ์ฉ ๊ฐ๋ฅ, Key-Value ํํ๋ก ๊ด๋ฆฌํ์ฌ Key ์ค๋ณต ํ์ฉ ์ ํจ |
HttpSession ์ธํฐํ์ด์ค๋ก ์ ์๋๊ณ , ์๋ฒ ์ธก ๋ฉ๋ชจ๋ฆฌ์์ ์ฌ์ฉ์์ ์ํ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.Session:
Cookie:
Session:
web.xml์์ ์ค์ ํ ์ ์์ต๋๋ค.Cookie: