사용자 삽입 이미지
Nicholas C. Zakas 씨가 자신의 새 책을 위한 예비 작업으로서 주요 4개 브라우저에 대한 브라우저 쿠키 제약을 연구하셨습니다:

제가 발견한 가장 흥미로운 사실은 Safari는 도메인당 설정할 수 있는 쿠키의 갯수가 제한이 없다는 것입니다. 사실, 여러분은 쿠키 헤더가 해석하기엔 너무 커 서버가 에러를 일으킬 수도 있을 만큼의 쿠키를 클라이언트에 설정할 수 있습니다.

그가 발견한 다른 사항은 이렇습니다:

  • Microsoft 는 Internet Explorer 8 의 도메인당 쿠키 제한을 50개까지 늘렸다고 말했지만, 제가 발견한 바로는 IE7 도 도메인당 50개의 쿠키를 허용합니다. 그렇습니다. 이는 출시된 브라우저의 첫번째 버전이 그런 것이 아니라 시스템 패치로 인해 증가한 것입니다. 하지만 여전히, 일반적으로 한계라고 생각하는 20개 보다는 많습니다.
  • Firefox는 도메인당 50개의 쿠키 제한이 있습니다.
  • Opera는 도메인당 30개의 쿠키 제한이 있습니다.
  • Safari/WebKit은 Safari 3.1을 통해 봤을 때 인지할 수 있는 한계가 없는 것 같아 가장 흥미로웠습니다. 제가 10,000개의 쿠키를 설정하고 그 쿠키를 전부 Cookie 헤더에 실어 보내 테스트를 해보았습니다. 문제는 헤더의 크기가 서버가 처리할 수 있는 정도를 넘어버렸다는 것인데, 그래서 서버에서 에러가 발생했습니다.

위에서 보듯이 브라우저의 도메인당 쿠키 제한이 20개라는 널리 알려진 지식은 더이상 바른 지식이 아닙니다. 또다른 재미있는 모순은 너무 많은 쿠키가 설정되면 브라우저가 어떻게 반응하는가에 대한 것입니다. 인식할 수 있는 숫자는 모두 설정할 수 있는 Safari를 제외하면, 두가지 접근 방법이 있습니다:

  1. 최근 최소 사용(LRU) 방법은 쿠키 제한에 도달했을 때, 새로운 쿠키를 위한 공간을 만들기 위해 가장 오래된 쿠키부터 제거합니다. Internet Explorer와 Opera가 이 방식을 사용합니다.
  2. Firefox는 약간 이상합니다: 마지막 쿠키가 항상 저장되어 있음에도 불구하고 무작위로 남겨둘 쿠키를 결정하는 것 같습니다. 일정한 법칙이 전혀 없는 것 같습니다. Firefox에서는 쿠키 제한 이상으로 사용하지 마십시오.

쿠키의 전체 크키는 브라우저마다 매우 다양합니다. 이 부분이 파악하기에 좀 힘들었던 부분입니다. 하지만 제가 테스트한 결과가 있습니다:

  • Firefox와 Safari는 쿠키를 4097 영문자까지 허용합니다. 4096 은 이름, 값, 등호(=)까지 포함한 것입니다.
  • Opera는 쿠키를 4096 영문자까지 허용합니다, 마찬가지로 이름, 값, 등호까지 포함한 것입니다.
  • Internet Explorer는 쿠키를 4095 영문자까지 허용합니다. 이름, 값, 등호까지 포함한 값입니다.
from Browser cookie restriction research on Ajaxian
Posted by 행복한고니 트랙백 0 : 댓글 0

댓글을 달아 주세요