MapleStory Finger Point

๐ŸŸค JAVA/๐ŸŸค JSP

[JSP] ์ฟ ํ‚ค(cookie) vs ์„ธ์…˜ (session)

HYEJU01 2024. 8. 24. 00:17

[ ์ฟ ํ‚ค์™€ ์„ธ์…˜  ]

์„œ๋ฒ„์™€ ์—ฐ๊ฒฐ์ด ๋Š๊ฒผ์„ ๋•Œ, ์–ด๋–ค ์ •๋ณด๋ฅผ ์ง€์†์ ์œผ๋กœ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜๋‹จ์ด๋‹ค.

 

 

 

๐Ÿ”น ์ฟ ํ‚ค cookie 

ํ•œ ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ฟ ํ‚ค๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

ํด๋ผ์ด์–ธํŠธ์— ์ฟ ํ‚ค๊ฐ€ ์ €์žฅ๋˜๋ฉด, ์ฟ ํ‚ค๊ฐ€ ์‚ญ์ œ๋˜๊ธฐ ์ „๊นŒ์ง€

์„œ๋ฒ„์— ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•œ๋‹ค. (์ง€์†์ ์œผ๋กœ ์œ ์ง€ํ•ด์•ผํ•˜๋Š” ์ •๋ณด๋Š” ์ฟ ํ‚ค์— ์ €์žฅํ•œ๋‹ค)

  • ์ฟ ํ‚ค๋Š” ์„œ๋ฒ„์—์„œ ์ƒ์„ฑํ•˜์—ฌ, ์„œ๋ฒ„๊ฐ€ ์•„๋‹Œ ํด๋ผ์ด์–ธํŠธ์ธก(local)์— ์ •๋ณด๋ฅผ ์ €์žฅ
  • ์„œ๋ฒ„์—์„œ ์š”์ฒญํ•  ๋•Œ๋งˆ๋‹ค ์ฟ ํ‚ค์˜ ์†์„ฑ๊ฐ’์„ ์ฐธ์กฐ ๋˜๋Š” ๋ณ€๊ฒฝ
  • ์ฟ ํ‚ค๋Š” ๊ฐœ๋‹น 4kb๋กœ ์šฉ๋Ÿ‰์ด ์ œํ•œ์ ์ด๋ฉฐ, 300๊ฐœ๊นŒ์ง€(1.2MB) ๋ฐ์ดํ„ฐ ์ •๋ณด

 

 

[ cookie ๋ฌธ๋ฒ• ]
์ฟ ํ‚คํด๋ž˜์Šค์—์„œ ์ฟ ํ‚ค ์ƒ์„ฑ ->

setter๋ฉ”์„œ๋“œ๋กœ ์ฟ ํ‚ค์˜ ์†์„ฑ ์„ค์ • -> 

response๊ฐ์ฒด์— ์ฟ ํ‚ค ํƒ‘์žฌ -> 

๋กœ์ปฌ ํ™˜๊ฒฝ์— ์ €์žฅ

 

//์ฟ ํ‚ค ์ƒ์„ฑ
<% 
Cookie cookie = new Cookie("cookieName", "cookieValue");
response.addCookie(cookie);
%>

// ์ฟ ํ‚ค ์ด๋ฆ„ ์–ป๊ธฐ
<%= cookie.getName() %>

// ์ฟ ํ‚ค ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ
Cookie[] cookies = request.getCookies();


// ์ฟ ํ‚ค๊ฐ’ ๋ณ€๊ฒฝ, ์‚ญ์ œ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 


[ cookie ๊ฐ์ฒด ๊ด€๋ จ ๋ฉ”์„œ๋“œ ]

 

 

 





๐Ÿ”น ์„ธ์…˜ session 

 

ํ•œ ์›น ๋ธŒ๋ผ์šฐ์ € ๋งˆ๋‹ค ํ•œ ์„ธ์…˜์„ ์ƒ์„ฑํ•œ๋‹ค.

  • ์ฟ ํ‚ค์™€ ๋‹ฌ๋ฆฌ ํด๋ผ์ด์–ธํŠธ์˜ ํŠน์ • ์œ„์น˜์— ์ €์žฅ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์„œ๋ฒ„์ƒ์— ๊ฐ์ฒดํ˜•ํƒœ๋กœ ์กด์žฌ
  • ์„œ๋ฒ„๋‹น ํ•˜๋‚˜์˜ ์„ธ์…˜ ๊ฐ์ฒด (๋ธŒ๋ผ์šฐ์ € ๋ณ„ ์„œ๋กœ ๋‹ค๋ฅธ ์„ธ์…˜ ์‚ฌ์šฉ)
  • ์„ธ์…˜ ๊ฐ์ฒด๋Š” ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์„ ์ข…๋ฃŒํ•˜๋ฉด ์‚ญ์ œ
  • ์„œ๋ฒ„์—์„œ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜์—ฌ ๋ณด์•ˆ์ด ์ข‹๊ณ , ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์— ํ•œ๊ณ„๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค
  • ์„ธ์…˜์€ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๋ฉด ์ž๋™์ƒ์„ฑ๋˜์–ด ๊ณ ์œ ํ•œ ID๊ฐ’์„ ํด๋ผ์ด์–ธํŠธ์— ๋„˜๊ฒจ์ฃผ๋ฉฐ ์ด๊ฒƒ์€ ์ฟ ํ‚ค์— ์ €์žฅํ•จ

//์„ธ์…˜ ์ƒ์„ฑ
<%@ page session = "true" %>


//์„ธ์…˜ ๊ฐ’ ์ €์žฅ
<%
session.setAttribute("TEXT","hi");
%>

//์„ธ์…˜ ๊ฐ’ ์ฝ๊ธฐ 
<%
String text = (String)session.getAttribute("TEXT");
%>

<%= text %>


//์„ธ์…˜ ์ข…๋ฃŒ
session.invalidate();


// ์„ธ์…˜ ์ ‘๊ทผํ•œ ์‹œ๊ฐ„
session.getLastAccessedTime();

// ์„ธ์…˜ ์œ ํšจ ์‹œ๊ฐ„
1. web.xml ํŒŒ์ผ์—์„œ <session-config> ํƒœ๊ทธ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์ •
2. setMaxInactiveInterval(60*60) ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ (์ดˆ๋‹จ์œ„)

 

 

[ session  ๊ฐ์ฒด ๊ด€๋ จ ๋ฉ”์„œ๋“œ ]

 

 

 

 

[ ์ฟ ํ‚ค๋ณด๋‹ค ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ? ]

  • ์„ธ์…˜์ด ์ฟ ํ‚ค๋ณด๋‹ค ๋ณด์•ˆ์—์„œ ์•ž์„œ๊ธฐ ๋•Œ๋ฌธ
    (์„ธ์…˜์€ ์˜ค์ง ์„œ๋ฒ„์—๋งŒ ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ์ด ์ข‹์Œ)
    (์ฟ ํ‚ค๋Š” ๋„คํŠธ์›Œํฌ๋กœ ์ „๋‹ฌ๋˜๊ธฐ๋•Œ๋ฌธ์— ์ค‘๊ฐ„์— ์ฟ ํ‚ค ๊ฐ’์„ ์ฝ์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค)
  • ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ฟ ํ‚ค๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๊ฐ•์ œ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์ฟ ํ‚ค๋ฅผ ์ฐจ๋‹จํ•œ ๊ฒฝ์šฐ์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ 

 

 

 

[ ํ•˜์ง€๋งŒ ์„ธ์…˜์—๋„ ๋‹จ์ ์ด ์žˆ๋‹ค.. ! ]
์—ฌ๋Ÿฌ ์„œ๋ฒ„์—์„œ ๊ณต์œ ํ•  ์ˆ˜ ์—†๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.
์ฟ ํ‚ค๋Š” ๋„๋ฉ”์ธ์„ ์ด์šฉํ•ด ์ฟ ํ‚ค๋ฅผ ์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ์—์„œ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ!

 

Naver, Daum๊ณผ ๊ฐ™์€ ํฌํ„ธ์‚ฌ์ดํŠธ๋“ค์€ ์ฟ ํ‚ค์— ๋กœ๊ทธ์ธ ๋ฐฉ์‹์„ ์ €์žฅํ•œ๋‹ค.
ex) ww.naver.com๊ณผ mail.naver.com, blog.naver.com์˜ ์„œ๋ฒ„๋Š” ๊ฐ๊ฐ ๋‹ค๋ฆ„.