[JSP] Cookie (์ฟ ํค)
Cookie (์ฟ ํค)
-
์น๋ธ๋ผ์ฐ์ ์์ ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ฉด ์๋ฒ ์ธก์์๋ ๋ก์ง ์ํ, ์น๋ธ๋ผ์ฐ์ ์ ์๋ตํ ํ ์น๋ธ๋ผ์ฐ์ ์์ ๊ด๊ณ๋ฅผ ์ข ๋ฃํ๋๋ฐ, ์ด๋ฌํ ์ํ๋ฅผ โ๋ฌด์ํ ์๋ฒ, ๋ฌด์ํ ๋ก์งโ์ด๋ผ๊ณ ํ๋ค.
-
์น๋ธ๋ผ์ฐ์ ์ ์๋ต ํ ์ฐ๊ฒฐ์ด ํด์ ๋๋ ๊ฒ์ http ํ๋กํ ์ฝ์ ํน์ง์ผ๋ก, ์ฐ๊ฒฐ์ด ๋๊ฒผ์ ๋ ์ด๋ ํ ์ ๋ณด๋ฅผ ์ง์์ ์ผ๋ก ์ ์งํ๊ธฐ ์ํ ์๋จ์ผ๋ก โ์ฟ ํคโ๋ฅผ ์ฌ์ฉ
-
์ฟ ํค๋ ์๋ฒ์์ ์์ฑํ๋ฉฐ, ์๋ฒ๊ฐ ์๋ ํด๋ผ์ด์ธํธ ์ธก์ ํน์ ์ ๋ณด๋ฅผ (HDD์ ํ ์คํธ ํ์ผ๋ก) ์ ์ฅ
-
์๋ฒ์ ์์ฒญ ํ ๋๋ง๋ค ์ฟ ํค์ ์์ฑ ๊ฐ์ ์ฐธ์กฐ, ๋ณ๊ฒฝ ํ ์ ์์
-
์ฟ ํค๋ 4kb๋ก ์ฉ๋์ด ์ ํ์ ์ด๋ฉฐ, ๋ฐ์ดํฐ ์ ๋ณด๋ 300๊ฐ๊น์ง ๊ฐ์ง ์ ์์
-
๋ณด์์ ์ทจ์ฝํ๋ฏ๋ก, ์ค์ํ ์ ๋ณด๋ ์ ์ฅํ์ง ์๋๋ค. (ex) ๋ก๊ทธ์ธ ์ ์ฟ ํค๋ฅผ ์ฌ์ฉํด ์์ด๋ ๊ฐ๋ง ์ ์ฅ, ์ ์ถ๋๋ฉด ์๋๋ ๋น๋ฐ๋ฒํธ ๋ฑ์ ์ ๋ณด๋ ์ธ์ ์์ ๋ฐ๋ก ๊ด๋ฆฌ / ์ฅ๋ฐ๊ตฌ๋ ๋ฑ์ ์ฌ์ฉ)
-
ํด๋ผ์ด์ธํธ์์ ์๋ฒํ์ด์ง ์ ์ -> ์ ๋ ฅ ํ ํ์ด์ง ์ ํ ์ ์ธ์ ์์ฑ์ฝ๋๊ฐ ์๋๋ฐ, ์ด ์ธ์ ์์ฑ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฟ ํค ๊ฐ์ฒด๋ฅผ ์์ฑ -> ์์ฑ๋ ์ฟ ํค์ ํ์ธ์ฉ ๋ฐ์ดํฐ(๋น๊ต ๋ฐ์ดํฐ)๊ฐ ์๋ฒ์ ๋จ๊ณ , ์๋ฒ์ ๋จ์์๋ ํ์ธ์ฉ ๋ฐ์ดํฐ๋ฅผ ๋น๊ตํ๊ธฐ ์ํ ๊ธฐ์ค ๋ฐ์ดํฐ(=์ฟ ํค)๋ฅผ ํด๋ผ์ด์ธํธ๋ก ์ ์ก
-
์ฟ ํค ๊ด๋ จ ๋ฉ์๋
-
setMaxAge(int seconds) : ์ฟ ํค ๋ง๋ฃ์๊ฐ ์ค์
-
setPath() : ์ฟ ํค ์ฌ์ฉ์ ์ ํจ ๋๋ ํ ๋ฆฌ ์ค์
-
setValue(String value) : ์ฟ ํค ๊ฐ ์ค์
-
setVersion() : ์ฟ ํค ๋ฒ์ ์ค์
-
getMaxAge() : ์ฟ ํค ๋ง๋ฃ๊ธฐ๊ฐ ์ ๋ณด๋ฅผ ์ป์
-
getName() : ์ฟ ํค ์ด๋ฆ์ ์ป์
-
getPath() : ์ฟ ํค ์ฌ์ฉ์ ์ ํจ ๋๋ ํ ๋ฆฌ ์ ๋ณด๋ฅผ ์ป์
-
getValue() : ์ฟ ํค์ ๊ฐ์ ์ป์
-
getVersion() : ์ฟ ํค ๋ฒ์ ์ ์ป์
-
์ฟ ํค(Cookie)๋ฅผ ์ฌ์ฉํด ๊ฐ๋จํ ๋ก๊ทธ์ธ / ๋ก๊ทธ์์ ํ์ด์ง ๋ง๋ค๊ธฐ
-
login.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>๋ก๊ทธ์ธ</title> </head> <body> <form action="chkLogin.jsp" method="post"> ์์ด๋ : <input type="text" name="uid" size="10"> <br><br> ๋น๋ฐ๋ฒํธ : <input type="password" name="upw" size="10"> <br><br> <input type="submit" value="๋ก๊ทธ์ธ"> <input type="reset" value="์ด๊ธฐํ"> </form> </body> </html>
-
chkLogin.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>๋ก๊ทธ์ธ ํ์ธ ํ์ด์ง</title> </head> <body> <%! String uid, upw; %> <% uid = request.getParameter("uid"); upw = request.getParameter("upw"); if(uid.equals("admin") && upw.equals("12345")){ Cookie cookie = new Cookie("uid", uid); cookie.setMaxAge(60); response.addCookie(cookie); response.sendRedirect("loginSuccess.jsp"); } else response.sendRedirect("loginFail.jsp"); %> </body> </html>
-
loginSuccess.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>๋ก๊ทธ์ธ ์ฑ๊ณต</title> </head> <body> <h1>๋ก๊ทธ์ธ ์ฑ๊ณต</h1> <% Cookie[] cookies = request.getCookies(); for(int i = 0; i < cookies.length; i++){ String id = cookies[i].getValue(); if(id.equals("admin")){ out.println(id + "๋ ๋ฐ๊ฐ์ต๋๋ค."); } } %> <a href="logout.jsp"><input type="button" value="๋ก๊ทธ์์"></a> </body> </html>
-
loginFail.ljsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>๋ก๊ทธ์ธ ์คํจ</title> </head> <body> <script type="text/javascript"> alert('๋ก๊ทธ์ธ ์คํจ'); location.href="login.html"; </script> </body> </html>
-
logout.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>๋ก๊ทธ์์</title> </head> <body> <% Cookie[] cookies = request.getCookies(); if(cookies != null){ for(int i = 0; i < cookies.length; i++){ String id = cookies[i].getValue(); if(id.equals("admin")){ //setMaxAge(0) == ์ฟ ํค ์ญ์ cookies[i].setMaxAge(0); response.addCookie(cookies[i]); out.println("๋ก๊ทธ์์ ํ์ จ์ต๋๋ค."); } } } %> <a href="login.html"><input type="button" value="๋ค์๋ก๊ทธ์ธํ๊ธฐ"></a> </body> </html>
-
์คํ๊ฒฐ๊ณผ