Cookie는 어떤 사이트에서 방문자의 브라우저의 작은 화일에 자신들이 방문자를 구분할 수 있도록 몇줄의 글자들을 기록합니다. 이 기록은방문자가 입력한 이름이나 마지막으로 방문한 시간, 페이지를 어떤식으로 보기를 원하는지 등을 기록할 수 있습니다.

자신의 사이트에 온 방문자에게만 이들의 기록을 남길수 있지 다른 사이트의 정보는 읽을 수 없습니다. 이 기록으로 방문자가 다음에 방문했을때, 아는척 한다던가 외부 CSS 화일같은 것으로 방문자가 원하는 페이지 구성으로 페이지를 보여줄 수 있습니다.

Cookie에는 name=value 로써 필요한 정보를 기록할 수 있습니다. 경로가 다르면 name=value의 name의 이름이 같아도그 이름을 쓸 수 있고 같은 경로에서는 똑 같은 이름을 쓰면 value의 값이 수정되고, 이름이 틀리면 같은 경로에도 여러개의name=value를 쓸 수 있습니다.

Cookie 값을 읽기 위해서는 반드시 cookie를 저장한 domain 이나 URL에서 읽어야 하고 같은 경로에서, 하위 디렉토리에서는상위 디렉토리의 cookie의 값을 읽을수는 있지만, 수정은 할 수 없습니다. 수정하기 위해서는 cookie의 값을 저장한 경로에서만가능합니다. cookie의 값을 cookie.txt 화일에서 지울려면 즉, 완전히 없엘려면 EXPIRES를 지난 시간으로 설정합니다.

하위 디렉토리에서는 상위 디렉토리의 쿠키 값을 읽을수 있지만, 상위가 하위의 쿠키 값은 읽지 못합니다. 그리고 수정은 상하위 모두 자신의디렉토리에서 설정한 쿠키값만을 수정할 수 있다.

cookie에 값을 지정하고 그 페이지를 Reload를 해야지만 지정한 값을 참조할 수 있고 cookie.txt에 입력은 Reload해도바로 입력이 안됩니다. 브라우저를 종료하면 입력이 됩니다. cookie를 저장하는 곳은 nn은 브라우저가 설치된곳의 cookie.txt에 ie는window를 설치한 폴더의 cookies 폴더에 기록합니다.

COOKIE 설정하기

사용자의 이름을 기록하는 userName에 사용자가 입력한 이름을 기록합니다. 다음에 사용자가 다시 왔을때, 사용자의 이름을 부르며 환영합니다.. 라고 인사합니다.
function setCookie(name, value, expire) {          document.cookie = name + "=" + escape(value)          + ( (expire) ? "; expires=" + expire.toGMTString() : "")}
여기서 name은 기록할 이름이고 value는 저장할 값이고 expire는 자동삭제 시간입니다. escape(value)는semicolons, commas, spaces 같은 특수문자를 사용자가 입력했을 경우를 대비해서 해줍니다. 쿠키설정 코드를 짤때 name에도특수문자를 넣었다면 name도 escape(name)으로 해주어야 합니다. toGMTString()은 cookie에 삭제기간을 지정할 때 사용할수 있는 함수입니다. 여기에서 domain, path, secure는 지정하지 않았습니다. domain과 path는 지정하지 않으면 현재의쿠키를 설정하고 있는 domain과 path가 지정되고 secure는 서버의 channel과 연관된 것입니다.
function register(uName) {          var today = new Date()          var expire = new Date(today.getTime() + 60*60*24*31*1000)          setCookie("userName", uName, expire)}<form onSubmit="register(this.txt.value)"> 이름이 뭐죠? <input type=text name=txt><input type=submit></form>
사용자가 이름을 입력하고 submit 하면 31일 후로 자동삭제 기간을 지정하고 userName라는 이름으로 cookie를설정합니다.
function getCookie(uName) { var flag = document.cookie.indexOf(uName+'='); if (flag != -1) {  flag += uName.length + 1  end = document.cookie.indexOf(';', flag)  if (end == -1) end = document.cookie.length  return unescape(document.cookie.substring(flag, end)) }}
이 코드로 cookie를 읽습니다. cookie에 저장되는 방식은 저장이름=저장값으로 저장합니다. 저장이름이 다른것이2개 이상이 저장되어 있다면 저장이름=저장값; 저장이름=저장값 식으로 저장이 됩니다. 등호(=)와 (;)는 자동으로붙습니다. nn은 브라우저가 있는 폴더에 cookie.txt로 저장하고 ie4는 window가 설치된 곳에 Cookies 폴더에 저장됩니다.
function cookieComment() { var userName = getCookie("userName"); if ( userName ) {  alert("n돌아오신 것을 환영합니다.nn" + userName + " 님.."); } else alert("n처음 오셨군요.. 반갑습니다..");}<body onLoad="cookieComment()">
Cookie를 읽고 두개 중의 하나의 환영 alert창을 엽니다.



* 눈내리는마을님에 의해서 게시물 이동되었습니다 (2003-05-25 01:13)

내가 듣고싶은 음악
내가 들려주고싶은 음악