2012-01-03 2 views
6

사용자가 우리 사이트에 로그인 할 때 사이트 전체에서 사용되는 다양한 설정을 포함하는 데이터베이스에서 개체를 검색합니다. 사용자가 사이트와 상호 작용할 때마다 서버로드가 데이터베이스로 되돌아가는 것을 줄이기 위해 다른 방법을 생각하려고합니다. (우리는 필요할 때 객체를 직렬화하고 역 직렬화한다). 개체는 < 1MB 일 가능성이 있지만 다를 수 있습니다.얼마나 큰 쿠키를 만들 수 있습니까?

  1. 성능에 큰 영향을주지 않고 얼마나 큰 개체를 세션에서 사용할 수 있습니까?
  2. 쿠키에 저장할 수있는 객체의 크기는 어느 정도입니까?
  3. 다른 대안이 있습니까 (DB에서 데이터를 검색하는 것 외에)?
+0

데이터베이스가 너무 느려서 값을 가져 오는 것이 문제가되는 것입니까? 이것은 아마도 실제로 서버 측에서 처리해야합니다 –

+1

[가능한 최대 쿠키 파일 크기는 무엇입니까?] (http://stackoverflow.com/questions/3107140/what-is-the-maximum-size- of-a-cookie-file) –

+0

이 작업을 정말로 수행해야하는 경우에는 [Local Storage vs Cookies] (http://stackoverflow.com/q/3220660)를 참조하십시오. –

답변

4

최대 허용 쿠키 크기는 클라이언트에 따라 다릅니다. 예를 들어 MSDN article (2005 년)은 전체 쿠키가 4096 바이트 이상을 사용할 수 있다고 말합니다 (만료일 등 포함).

실제 사용자 에이전트 구현 수와 저장할 수있는 쿠키의 크기에 제한이

6.3 구현의 제한 : 같은 문서에서 언급 된 RFC 한계에 대한 좀 더 많은 정보가 포함되어 있습니다. 일반적으로 사용자 에이전트의 쿠키 지원에는 고정 된 제한이 없어야합니다. 가능한 많은 자주 사용하는 쿠키를 으로 저장하려고 노력해야합니다. 또한, 일반적인 사용 사용자 에이전트는 있지만, 반드시 동시에, 각각 다음과 같은 최소 기능 각각을 제공한다 : 쿠키 당

  • 적어도 300 쿠키

  • 적어도 4096 바이트 (의해 측정Set-Cookie 헤더에 대한 설명이 아닌 문자를 포함하는 문자의 크기

  • 고유 한 호스트 당 20 개 이상의 쿠키 또는 예를 들어, 경우에 손실되지해야한다 "와 같이 세션 데이터 (가치없는 경우 도메인 이름

재부팅 ") memcached에 저장하는 것을 고려하십시오. 이것은 세션 데이터를 얻기 위해 DB에 액세스하는 것을 매우 빠르게 피할 수 있습니다. 실제로 두 가지를 모두 사용하는 것이 좋습니다. 세션 ID와 로그인을 포함하는 작은 쿠키를 만들 수 있습니다 따라서 서버 측 세션이 손실 되어도 사용자가 로그 아웃되지 않아 영향이 매우 낮아질 수 있습니다.

3

쿠키의 대안은 html5 로컬 저장소입니다. 이전 브라우저에서는 지원되지 않지만 그 경우 사용자 환경 설정에 대한 좋은 옵션이 아니라는 점을 기억하십시오. 다음을 염두에 두시기 바랍니다 :

1) 기본값은 도메인 당 5MB입니다. (생각합니다)
2) 설정 유형 데이터를 로컬 저장 장치를 사용하려면 여전히 동기화해야합니다. rver 또는 브라우저를 변경하면 새 브라우저에 사용자 설정이 표시되지 않습니다.

2

쿠키 데이터는 4KB로 제한됩니다.각 쿠키는 이름 - 값 쌍으로 시작하여 특정 서버 또는 도메인

에서 허용 최대 1.2 메가 바이트 20 쿠키의 총 합계 300 쿠키의 쿠키 당 최대

4킬로바이트. 이 쌍 뒤에는 0 또는 더 많은 속성 - 값 쌍이오고 세미콜론으로 구분됩니다. 하나의 도메인 이름에 대해 각 쿠키는 4,096 바이트로 제한됩니다. 이 총계는 하나의 이름 - 값 쌍으로 4KB (킬로바이트) 또는 최대 20 개의 이름 - 값 쌍 (총 4KB)으로 존재할 수 있습니다. 컴퓨터에 쿠키를 저장할 공간이 충분하지 않으면 쿠키가 삭제됩니다. 잘리지 않습니다. 응용 프로그램은 가능한 한 적은 수의 쿠키를 사용하고 가능한 한 작은 쿠키를 사용해야합니다. 또한 응용 프로그램은 쿠키 손실을 처리 할 수 ​​있어야합니다.

웹 응용 프로그램이 19 개 이상의 사용자 지정 쿠키를 사용하는 경우 ASP 세션 상태가 손실 될 수 있습니다. Internet Explorer 4.0 이상 버전에서는 각 도메인에 대해 총 20 개의 쿠키가 허용됩니다. ASPSessionID는 쿠키이기 때문에 20 개 이상의 사용자 정의 쿠키를 사용하면 브라우저는 ASPSessionID 쿠키를 버리고 세션을 잃게됩니다.

관련 문제