JavaScript 입문 강좌 Cookies

"일부 웹 사이트 에 서 는 하 드 디스크 에 작은 텍스트 파일 로 정 보 를 저장 합 니 다.이 파일 들 을 쿠키 라 고 합 니 다."MSIE 도움말.일반적으로 쿠키 는 CGI 나 유사 한 HTML 보다 고급 파일,프로그램 등 으로 만들어 지지 만 자 바스 크 립 트 는 쿠키 에 대한 포괄 적 인 접근 권 을 제공한다.계속 하기 전에 우 리 는 먼저 쿠키 의 기본 지식 을 배 워 야 한다.모든 Cookie 는 다음 과 같 습 니 다.=<값>의 제한 은 JavaScript 의 명명 제한 과 대동소이 합 니 다."JavaScript 키 워드 를 사용 할 수 없습니다"가 적 고"URL 인 코딩 에 만 사용 할 수 있 는 문자"가 많 습 니 다.후 자 는 비교적 이해 하기 어렵 지만,네가 자모 와 숫자 로 만 이름 을 짓 는 다 면 전혀 문제 가 없다.<값>의 요구 도"URL 인 코딩 에 사용 할 수 있 는 문자 만 사용 할 수 있 습 니 다"입 니 다.모든 쿠키 에는 실효 날짜 가 있 으 며,컴퓨터 의 시계 가 실효 날짜 가 지나 면 이 쿠키 는 삭 제 됩 니 다.우 리 는 쿠키 하 나 를 직접 삭제 할 수 는 없 지만,실효 날 짜 를 현재 시각 보다 일찍 설정 하 는 방법 으로 간접 적 으로 삭제 할 수 있다.모든 웹 페이지,또는 모든 사이트 에 자신의 Cookies 가 있 습 니 다.이 Cookies 는 이 사이트 의 웹 페이지 에서 만 방문 할 수 있 습 니 다.다른 사이트 나 같은 사이트 에서 권한 이 부여 되 지 않 은 지역 의 웹 페이지 에 서 는 방문 할 수 없습니다.각'그룹'쿠키 에는 정 해진 총 크기(약 2KB 각'그룹')가 있 으 며,최대 총 크기 를 초과 하면 최초 로 효력 을 상실 한 쿠키 가 먼저 삭 제 돼 새로운 쿠키 가'정착'할 수 있 도록 했다.이제 document.cookie 속성 을 사용 하 는 것 을 배 워 보 겠 습 니 다.document.cookie 속성 을 직접 사용 하거나 변수 에 값 을 부여 하여 document.cookie 의 값 을 얻 는 방법 을 사용 하면 현재 문서 에 몇 개의 Cookies 가 있 는 지,각 Cookies 의 이름과 그 값 을 알 수 있 습 니 다.예 를 들 어 한 문서 에'document.write(document.cookie)'를 추가 한 결과

name=kevin; [email protected]; lastvisited=index.html
이 는 문서 에 3 개의 Cookies:name,email,lastvisited 가 포함 되 어 있 고 이들 의 값 은 각각 kevin 이라는 것 을 의미한다[email protected].이 를 통 해 알 수 있 듯 이 두 쿠키 사 이 는 분점 과 빈 칸 으로 구분 되 기 때문에 우 리 는 cookieString.split(';')를 사용 할 수 있 습 니 다.방법 은 각 Cookie 로 구 분 된 배열 을 얻 을 수 있 습 니 다.(먼저 var cookieString=document.cookie)쿠키 를 설정 하 는 방법 은 document.cookie 에 값 을 부여 하 는 것 입 니 다.다른 경우 의 할당 과 달리 document.cookie 에 할당 하면 기 존 쿠키 를 삭제 하지 않 고 쿠키 를 추가 하거나 기 존 쿠키 를 변경 합 니 다.할당 형식:

document.cookie = 'cookieName=' + escape('cookieValue')
+ ';expires=' + expirationDateObj.toGMTString();
어 지 러 운 거 보 셨 죠?이상 은 굵 은 글자 가 아 닌 곳 은 그대로 베껴 쓰 는 것 이 고,굵 은 글 자 는 실제 상황 에 따라 바 꿔 야 한다.cookieName 은 Cookie 의 이름 을,cookieValue 는 Cookie 의 값 을,expirationDateObj 는 실효 날짜 의 날짜 대상 이름 을 저장 하고 있 으 며,실효 날 짜 를 지정 할 필요 가 없 으 면 두 번 째 줄 이 필요 하지 않 습 니 다.실효 날 짜 를 지정 하지 않 으 면 브 라 우 저 는 기본적으로 브 라 우 저 를 닫 은 후 만 료 됩 니 다.위 에 밑줄 친 거 봤 어 요?이것들 은 주의해 야 할 곳 이다.우선 escape()방법:왜 꼭 써 야 합 니까?쿠키 값 은"URL 인 코딩 에 사용 할 수 있 는 문자 만 사용 할 수 있 습 니 다"라 는 요구 사항 이기 때 문 입 니 다."escape()"방법 은 문자열 을 URL 인 코딩 방법 에 따라 인 코딩 하 는 것 임 을 알 고 있 습 니 다."escape()"방법 으로 쿠키 에 출력 된 값 을 처리 하고"unescape()"로 쿠키 에서 받 은 값 을 처리 하면 틀림 없습니다.그리고 이 두 가지 방법의 가장 일반적인 용 도 는 쿠키 를 처리 하 는 것 이다.사실 쿠키 를 설정 하 는 것 은'document.cookie='cookie Name=cookie Value'라 는 간단 하지만 cookieValue 에 URL 에 나타 나 지 않 는 문자 가 나타 나 지 않도록 escape()를 사용 하 는 것 이 좋 습 니 다.그리고"expires"앞의 분점:주의 하면 됩 니 다.다른 것 이 아니 라 분점 입 니 다.마지막 으로 toGMTString()방법:쿠키 의 시효 날 짜 를 설정 하 는 것 은 모두 GMT 형식 을 사용 하 는 시간 이 고 다른 형식의 시간 은 소 용이 없습니다.이제 실전 을 해 보 자."name=rose"의 쿠키 를 설정 합 니 다.3 개 월 후에 만 료 됩 니 다

var expires = new Date();
expires.setTime(expires.getTime() + 3 * 30 * 24 * 60 * 60 * 1000);
/* x 30 x 24
x 60 x 60 x 1000 */
document.cookie = 'name=rose;expires=' + expires.toGMTString();
왜 escape()방법 을 사용 하지 않 았 습 니까?이것 은 rose 가 합 법 적 인 URL 인 코딩 문자열 이라는 것 을 알 고 있 기 때 문 입 니 다.즉,'rose'==escape('rose')입 니 다.일반적으로 쿠키 를 설정 할 때 escape()를 사용 하지 않 으 면 쿠키 를 가 져 올 때 도 unescape()를 사용 하지 않 습 니 다.다시 한 번:함 수 를 만 듭 니 다.지정 한 Cookie 의 값 을 찾 는 역할 을 합 니 다

function getCookie(cookieName) {
var cookieString = document.cookie;
var start = cookieString.indexOf(cookieName + '=');
// Cookie
// cookieName 。
if (start == -1) //
return null;
start += cookieName.length + 1;
var end = cookieString.indexOf(';', start);
if (end == -1) return unescape(cookieString.substring(start));
return unescape(cookieString.substring(start, end));
}
이 함 수 는 문자열 대상 의 방법 을 사 용 했 습 니 다.만약 당신 이 기억 하지 못 한다 면(당신 이 이렇게 기억력 이 없 는 지)빨리 가서 찾 아 보 세 요.이 함수 의 모든 if 문 구 는 else 를 가지 고 있 지 않 습 니 다.이것 은 조건 이 성립 되면 프로그램 이 실행 하 는 것 은 모두 return 문 구 를 가지 고 있 기 때 문 입 니 다.함수 에서 return 을 만나면 운행 을 중지 하기 때문에 else 를 추가 하지 않 아 도 문제 가 없습니다.이 함 수 는 쿠키 를 찾 을 때 쿠키 의 값 을 되 돌려 줍 니 다.그렇지 않 으 면"null"을 되 돌려 줍 니 다.지금 우 리 는 방금 설정 한 name=rose Cookie 를 삭제 해 야 합 니 다

var expires = new Date();
expires.setTime(expires.getTime() - 1);
document.cookie = 'name=rose;expires=' + expires.toGMTString();
실효 날 짜 를 현재 날짜 보다 조금 일찍(여 기 는 1 밀리초 일찍)바 꾸 고 같은 방법 으로 쿠키 를 설정 하면 쿠키 를 삭제 할 수 있 음 을 알 수 있다.

좋은 웹페이지 즐겨찾기