Develop
2003.04.23 10:21
[js] 쿠키(cookie)에 대한 설명과 예제..
조회 수 8346 댓글 0
자바스크립트 쿠키는 CGI의 HTTP Cookie와 내용 및 작동하는 법은 같으나 약간의 차이가 있습니다.
아래는 자바스크립트 쿠키에 대한 개요입니다.
- 자바스크립트에서 지원하는 사용자의 특정 정보를 저장하는 기법
- 클라이언트의 브라우저에 저장되나 서버에는 저장되지 않습니다.
- 일정 기간 동안만 유효하게 할 수 있고, 유효기간(만료기한)이 설정되지 않을 경우 브라우저 종료시 자동으로 사라집니다.
- 클라이언트에는 브라우저가 실행중에는 메모리에, 종료될 경우 만료기한에 따라 cookies.txt라는 파일에 저장될 수 있습니다.
- 웹 서버의 환경변수 HTTP_COOKIE에는 저장되지 않습니다.
자바스크립트 쿠키는 서버와는 무관하기 때문에 일반적으로 잘 사용하지는 않습니다.
그러나, 클라이언트 내에서는 얼마든지 쿠키의 정보유지기법을 사용할 수 있으므로 간단한 방문 기록 남기기 등에서는 쓰일 수 있습니다.
자바스크립트에서 쿠키를 참조하기 위해서는 document.cookie객체를 사용합니다.
아래는 가장 일반적으로 사용되는 쿠키 관련 자바스크립트 함수들입니다.
아래 함수의 주요 기능은 document.cookie 객체의 문자열 조작을 통하여 쿠키로부터 값을 빼내는데 사용됩니다.
# Cookie 함수
// 쿠키 생성 함수 // setCookie('쿠키이름', '쿠키값', 만료일) // 쿠키이름 : 쿠키이름을 영문으로 넣어주세요. // 쿠키값 : 쿠키의 값을 문자열로 넣어주세요. // 만료일 : 쿠키의 만료일을 숫자로 넣어주세요 // 예) 만료일이 1 이면 하루동안 지속되는 쿠키입니다. // 예) 만료일이 -1 이면 쿠키가 삭제됩니다. function setCookie = function(cName, cValue, cDay){ var expire = new Date(); expire.setDate(expire.getDate() + cDay); // 한글 깨짐을 막기위해 escape(cValue)를 함. cookies = cName + '=' + escape(cValue) + '; path=/ '; if(typeof cDay != 'undefined'){ cookies += ';expires=' + expire.toGMTString() + ';'; } document.cookie = cookies; } // 쿠키 가져오는 함수 // getCookie('쿠키이름') // 쿠키이름을 넣어 주면 해당 쿠키의 값을 반환. // 쿠키가 있을때만 반환하며 없으면 공백이 반환. function getCookie = function(cName) { cName = cName + '='; var cookieData = document.cookie; var start = cookieData.indexOf(cName); var cValue = ''; if(start != -1){ start += cName.length; var end = cookieData.indexOf(';', start); if(end == -1)end = cookieData.length; cValue = cookieData.substring(start, end); } return unescape(cValue); } // 쿠키 제거함수 // clearCookie("쿠키이름"); clearCookie = function(name){ document.cookie = name + "= ''"; }
# 샘플
setCookie("site" ,"hooni.net", 365); var cookies = getCookie("site");
# 만료일 설정
var expireDate = new Date(); expireDate.setTime(expireDate.getTime() + 1000*60*60*24); SetCookie("site", "hooni.net", expireDate);
※ 위의 예제는 만료일을 쿠키가 생성되는 현재 시간 + 1일로 설정합니다.
만약, 만료일을 쿠키가 생성된 후 1시간으로 설정하겠다면,
위의 예제에서 24(시간)를 1(시간) 로 바꾸어 주면 됩니다.
쿠키는 설정된 후에 브라우저가 활성화 되어 있고 만료일이 경과되지 않는 한 브라우저에 따라 설정된 디렉토리 내의 cookies.txt를 지우더라도 값이 유지된다는 점을 주의하기 바랍니다.
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|---|
157 | Develop |
[c++] 헤더, 소스 파일 분리해서 작성해본 테스트 소스
![]() |
hooni | 2013.04.23 | 6715 |
156 | Develop |
[c++] 프리렉(freelec) 예제 자료.. ㅋㄷ
![]() |
hooni | 2013.04.23 | 6850 |
155 | Develop |
[c++] 퍼즐 버블버블 간단한 원리(사용공식)
![]() |
hooni | 2013.04.23 | 9989 |
154 | Develop |
[c++] 트리컨트롤 예제1 ㅋㅋ
![]() |
hooni | 2013.04.23 | 7190 |
153 | Develop |
[c++] 트리컨트롤 스텝 3 예제..
![]() |
hooni | 2013.04.23 | 7961 |
152 | Develop |
[c++] 트리컨트롤 스텝 2 예제..
![]() |
hooni | 2013.04.23 | 6972 |
151 | Develop |
[c++] 템플릿(Template) 예제 소스..
![]() |
hooni | 2013.04.23 | 6996 |
150 | Develop |
[c++] 초간단 스택 두 가지 방식(class, struct)
![]() |
hooni | 2013.04.23 | 7626 |
149 | Develop |
[c++] 채팅로봇 소스.. ㅋㄷㅋㄷ
![]() |
hooni | 2013.04.23 | 8902 |
148 | Develop |
[c++] 중복실행 방지(Mutex;뮤텍스 ) 샘플 소스.. ㅋㅋ
![]() |
hooni | 2013.04.23 | 8759 |
147 | Develop |
[c++] 자료구조(링크리스트,스택,큐)와 후위 표기 계산기 샘플 ㅋㅋ
4 ![]() |
hooni | 2013.04.23 | 12349 |
146 | Develop | [c++] 인라인 함수에 대한 설명 | hooni | 2013.04.23 | 7127 |