이제 고급 문자열 처리 및 관련 배열 개념을 익혔으므로 이제 마법의 쿠키 병을 열 차례입니다. 쿠키는 귀하의 사이트를 방문한 사람들에 대한 정보를 기록하며, 사용자가 귀하의 사이트를 떠난 경우에도 쿠키는 여전히 사용자의 하드 드라이브에 존재합니다. 쿠키는 귀하의 서버로 함께 다시 전송되어 귀하가 재방문자에 대한 정보를 계산하고 처리할 수 있도록 합니다.
쿠키 적용의 일반적인 예를 살펴보겠습니다. 웹페이지에 쿠키를 설정한 후 다른 웹페이지를 통해 읽어옵니다. 이 예를 사용하면서 쿠키 없이 이 작업을 어떻게 수행할지 생각해 보세요.
쿠키는 사용자의 하드 드라이브에 정보를 쓰고 읽는 과정을 포함하므로 기밀 유지 문제가 있습니다. 쿠키에는 쿠키의 범위와 고유한 제한이 있습니다. 가장 중요한 제한은 모든 브라우저가 쿠키를 허용하는 것은 아니라는 것입니다. 이용자의 브라우저가 쿠키를 허용하더라도 이용자는 쿠키에 대한 접근을 거부할 수 있습니다(대부분의 사람들은 여전히 쿠키를 환영합니다). 각 도메인 이름에는 20개의 쿠키만 할당되므로 저장해 두십시오. 쿠키는 4KB보다 커서는 안 됩니다. 물론 4,000바이트이면 충분합니다.
이러한 제한 사항을 이해한 후에는 기본 쿠키 설정 방법을 배우기 시작합니다. 여러분이 해야 할 일은 cookie_name=value
형식으로 문자열을 생성하고 document.cookie 속성을 설정하는 것뿐입니다. 유일한 비결은 쿠키 값에 공백, 쉼표 또는 세미콜론이 있을 수 없다는 것입니다. 다행스럽게도 쿠키 속성을 인코딩하고 디코딩하는 데 도움이 되는 일련의 함수(
escape() 및 unescape())가 있으므로 이러한 문제에 대해 걱정할 필요가 없습니다.
다음의 간단한 예는 사용자의 이름을 쿠키로 저장합니다.
function setCookie()
{
var the_name = 프롬프트("이름이 무엇입니까?"," ");
var the_cookie = "wm_javascript=username:" escape(the_name);
document.cookie = the_cookie;
Alert("감사합니다. 이제 다음 페이지로 이동하세요. ");
}
함수 중간에 있는 두 줄이 핵심입니다:
var the_cookie = "wm_javascript=username:" escape (the_name);
If 프롬프트 상자에 "dave thau입니다"라고 입력하면 이 코드 줄은 wm_javascript=username:dave thau라는 문자열을 생성합니다. 이는 wm_javascript라는 쿠키를 하드 드라이브에 저장한다는 의미입니다. 이 쿠키의 값은 사용자 이름:dave thau입니다. escape() 함수는 "dave"와 "thau" 사이의 공백을 로 바꿉니다.
쿠키를 읽을 때 wm_javascript라는 쿠키를 찾은 다음 사용자 이름:dave thau를 추출하고 unescape()로 디코딩한 후 사용자 이름:을 제거합니다.
document.cookie = the_cookie;
이제 쿠키가 설정되었습니다. 매우 간단합니다.
사용자의 하드 드라이브에 쿠키를 설정하면 쿠키를 쉽게 읽을 수 있습니다. 다음은 쿠키 예제를 읽는 코드입니다.
function readCookie()
{
var the_cookie = document.cookie;
var broken_cookie = the_cookie.split(":");
var the_name = broken_cookie[1];
var the_name = unescape(the_name);
Alert("당신의 이름은 " the_name); 알았어 매우 중요합니다. 브라우저가 웹페이지를 열면 웹페이지와 관련된 모든 쿠키를 호출하여 document.cookie 속성에 로드합니다.
쿠키를 읽는 비결은 필요한 정보를 추출하는 것입니다. 우리가 설정한 쿠키는 wm_javascript=username:dave thau와 같습니다. 이 함수의 1행 이후의 모든 내용은 쿠키에서 사용자 이름을 추출하는 데 사용됩니다.
var broken_cookie = the_cookie.split(":")
쿠키를 세미콜론에서 두 부분으로 나눕니다.
var the_name = broken_cookie[1];
세미콜론 dave thau 뒤의 내용을 캡처하세요.
var the_name = unescape(the_name)
escape() 함수의 인코딩 교체를 취소합니다. 이 예에서는 .이 다시 공백으로 대체되었습니다.
Alert("당신의 이름은 " the_name)
당신의 이름을 보여주세요.
이 예에서 사용된 쿠키는 사용자 이름과 같은 아주 적은 정보만 저장하며, 쿠키는 최대 4kb의 정보를 저장할 수 있습니다. 다음 강의에서는 복잡한 예를 다루겠습니다.