이런저런 이유로 쿠키를 많이 사용합니다만 쿠키가 어떻게 설정되고 읽히는지 그 정확한 메카니즘을 설명한 문서는 어디에도 없는 것 같습니다... 그래서 제대로 알기 힘든 듯...






저도 이번에 테스트를 해보면서 여러가지 새로운(?!) 발견을 했습니다. 한번 보시고 이견이 있으시면 답변 부탁드립니다.




1. 클라이언트측 스크립트(javascript)로 쿠키를 설정하면 expires를 설정하건 하지 않건 하드디스크에 쿠키파일이 생기지 않는다.

  (즉, 브라우저를 닫으면 무조건 expire 된다!)


예) document.cookie = "id=thermidor; path=/; expires=Mon, 09-Dec-2002 08:00:00 GMT; domain=.nets.co.kr";




2. 서버측 스크립트(ASP)로 쿠키를 설정할 때 expires를 설정하면 하드디스크에 쿠키파일이 생긴다.

  (즉, 브라우저를 닫았다 열어도 쿠키값은 여전히 유효하다!)


예) Response.Cookies("id") = "thermidor" : Response.Cookies("id").Path = "/" : Response.Cookies("id").Expires = "2002-12-09 17:00:00" : Response.Cookies("id").Domain = ".nets.co.kr" 




3. 서버측 스크립트(ASP)로 쿠키를 설정할 때 expires를 설정하지 않으면 쿠키파일은 생성되지 않는다.

  (즉, 브라우저를 닫기 전까지만 쿠키값이 유효하다!)


예) Response.Cookies("id") = "thermidor" : Response.Cookies("id").Path = "/" : Response.Cookies("id").Domain = ".nets.co.kr" 




4. 클라이언트측 스크립트(javascript)로는 expires를 항상 GMT 시각값으로 설정해야 하며, 서버측 스크립트(ASP)로는 항상 현재 로케일의 시각값을 설정해야 한다.

  (즉, 항상 절대시각을 설정해야 한다!)




5. 쿠키값에 expires가 설정되어 있으면 사용자가 브라우저를 사용중(in active)이건 사용하지 않건(idle) 무조건 해당 설정 시각이 지나면 expire 된다. 따라서 계속 쿠키값을 유지해주려면 계속 사용자의 현재 시각 기준으로 expires 시각을 재설정해주어야 한다.




6. ASP.NET의 form 인증에서는 쿠키 expires 시각(timeout 속성)을 절대시각값이 아닌 상대시간값(분)으로 설정하며, 지정된 시간이 절반 이상 경과되면 쿠키가 업데이트된다.




여기서, 다른 테스트 결과는 다 이해가 되는데, 1번의 결과는 상식적으로 좀 이해가 되지 않는군요. expires를 설정한다는 의미는 그때까지 쿠키를 유효하게 만든다는 의미인데, 어째서 저장이 되지 않고 브라우저를 닫을 때 까지만 유효한지... -_-ㆀ 아무래도 브라우저 문제일 듯...



Posted by 떼르미
,


자바스크립트를 허용해주세요!
Please Enable JavaScript![ Enable JavaScript ]