쿠키 (Cookie)
개요
쿠키(Cookie)라는 개념을 이해하기 이전에 먼저 용어의 유래를 알아보자.
우리가 흔히 알고있는 과자 '쿠키'는 그림 동화 '헨젤과 그레텔'에서 지나온 길에 쿠키 조각을 떨어뜨려 표시를 했다는 이야기에서 유래되었다고 합니다. (정확하지 않습니다 ^^;) 어쨋든 사용하려는 쿠키는 서구권의 먹는 쿠키(Cookie)에서 비롯되었다는 것은 사실이니 어떤 역할을 하는지에 대한 이해를 높이기 위해 연상을 하는것은 좋은 학습방법이라 생각된다.
쿠키는 무엇?
쿠키는 웹 브라우저의 정보를 웹 브라우저에 저장하여 웹 서버에게 자신임을 증명하는 역할을 하는 임시파일이다.
구글 크롬 개발자 도구(F12)로 Application 탭에 Storage 란에 Cookies 항목이 있는걸 확인할수 있다.
쿠키를 왜 쓰는가?
쿠키의 동작 방식
JSP에서 쿠키 생성 및 사용
JSP에서 쿠키를 사용하기 위해서는 javax.servlet.http 패키지에 있는 Cookie 클래스의 객체를 생성해서 사용한다.
1 2 3 4 5 6 7 | //쿠키 생성 Cookie ck = new Cookie(String name, String value); //쿠키에 필요한 설정 ck.setMaxAge(60*2); //쿠키의 수명(지속시간) ck.setDomain("lhoris.tistory.com"); //도메인 설정 ck.setSecure(true); //쿠키의 보안 설정 response.addCookie(ck); //response객체에 쿠키를 전송 | cs |
쿠키 프로그래밍 작업 과정
- 쿠키 생성
- 쿠키에 필요한 설정(유효시간,도메인,패스,보안 등)
- 웹 브라우저에 쿠키 전송
- 웹 브라우저의 요청에서 쿠키를 얻어옴
- 쿠키(name,value) 객체 배열 형태로 리턴. 리턴 된 쿠키의 배열에서 쿠키이름을 가져옴
- 쿠키이름을 통해 해당 쿠키의 설정값을 추출
쿠키 관련 메서드
메서드 | 설명 |
String getCommnet() | 쿠키에 대한 설명을 가져온다. |
String getDomain() | 쿠키의 유효한 도메인 정보를 가져온다. |
int getMaxAge() | 쿠키의 사용할 수 있는 시간에 대한 정보를 가져온다. |
String getName() | 쿠키의 이름을 가져온다 |
String getPath() | 쿠키의 유효한 디렉토리 정보를 가져온다. |
boolean getSecure() | 쿠키의 보안이 어떻게 설정되어 있는지 가져온다. |
String getValue() | 쿠키에 설정된 값을 가져온다. |
int getVersion() | 쿠키의 버전을 가져온다. |
void setComment(String) | 쿠키에 대한 설명을 설정한다. |
void setDomain(String) | 쿠키에 유효한 도메인을 설정한다. |
void setMaxAge(int) | 쿠키의 유효한 시간을 설정한다. |
void setPath(Striong) | 쿠키를 전송할 경로를 설정한다. |
void setSecure(boolean) | 쿠키의 보안을 설정한다. |
void setValue(String) | 쿠키의 값을 설정한다. |
void setVersion(int) | 쿠키의 버전을 설정한다. |
쿠키의 문제점
세션 (Session)
개요
웹 서버는 각각의 웹 브라우저로부터 발생한 요청에 대해 특정한 식별자를 부여한다. 이후에 이 식별자를 웹 브라우저에서 발생한 요청들과 비교해서 같은 식별자인지를 구별하게 된다. 이 특별한 식별자에 특정한 값을 넣을 수 있고, 이것을 사용해서 세션을 유지하게 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | // 로그인확인 String id = request.getParameter("id"); String passwd = request.getParameter("passwd"); LogonDBBean dao = LogonDBBean.getIntance(); boolean loginok = dao.login(id, passwd); String url = ""; Cookie cookie = null; if( loginok ) { // 로그인 후 세션 아이디와 패스워드를 저장 //session은 내장 객체라 new 할 필요 없음 session.setAttribute("id", id); session.setAttribute("passwd", passwd); url = "list.jsp"; } else { url = "login.html"; } response.sendRedirect(url); | cs |
'Datebase' 카테고리의 다른 글
JSP 파일 업로드 기능 구현 방법들 (0) | 2018.02.08 |
---|---|
MySQL 한글 깨짐 현상 해결하기(UTF8 기본값 설정하기) (0) | 2018.01.30 |
JDBC(Java Database Connectivity) - MySQL, Oracle DB 연동 (0) | 2018.01.30 |
MySQL 무설치 버전 설치하기 - Window (0) | 2018.01.26 |
SQL문 - DDL(Data Definition Language) (1) | 2018.01.25 |