인기있는 웹 사이트가 매우 복잡한 세션 관련 데이터를 쿠키에 저장하는 이유는 무엇입니까?


19

웹 개발자로서 우리는 세션이 HTTP의 무국적 속성과 관련된 문제를 극복하는 데 도움이된다는 것을 배웁니다. 고유 한 세션 ID를 만들어 브라우저로 보냅니다. 브라우저에서 동일한 ID를 다시 보내면 사용자를 쉽게 식별 할 수 있습니다.

이 모든 것은 매우 간단하게 들리며 어떤 언어로도 구현하기가 복잡하지 않습니다.

지금

내가 찍은 다음 스크린 샷을보십시오. 이들은 인기있는 웹 사이트 저장소의 쿠키 종류를 보여줍니다. 여러 세션 ID를 저장하거나 쿠키를 너무 많이 설정하여 실제 ID 숨기기를 시도하거나 세션 하이재킹 및 기타 관련 문제를 방지하기 위해 취하는 매우 전문적인 보안 조치입니다. 또는 무엇이든.

Gmail (로그인 전)

여기에 이미지 설명을 입력하십시오

Gmail (로그인 후)

여기에 이미지 설명을 입력하십시오

페이스 북

여기에 이미지 설명을 입력하십시오

StackExchange

여기에 이미지 설명을 입력하십시오

(걱정하지 마십시오, 당신은 내 세션을 훔칠 수 없습니다-그것은 오래되고 불완전합니다 :))

제 질문은이 복잡성이 어떤 목적에 도움이됩니까? 이러한 다른 쿠키의 의미 (일반)와 쿠키의 목적에 대해 설명하십시오. 마지막으로, 내 앱에서 어떻게 할 수 있는지 (필요한지 여부)에 대한 힌트를 제공하십시오.

질문 하나 더 : 많은 경우 쿠키의 값이 URL로 인코딩 된 것처럼 보입니다. 왜 그렇습니까?

답변:


21
  1. 때로는 데이터베이스의 세션 테이블에 특정 데이터를 저장하는 것이 실용적이지 않습니다. 특정 데이터가 많이 업데이트 되면 데이터베이스도 많이 다운 될 수 있습니다. 이 경우 데이터가 중요하지 않은 경우 별도의 쿠키에 저장하는 것이 좋습니다.

  2. (1)이 발생하면 쿠키 당 4kb 제한을 처리해야하므로 쿠키 내 세션 데이터를 모두 하나의 쿠키에 저장하는 것은 좋지 않습니다.

  3. 필요한 최소한의 쿠키에 모든 것을 저장할 수 있으면 좋을지 모르지만 프로젝트 복잡성 문제는이를 어렵게 만듭니다. 일부 응용 프로그램은 여러 팀에서 개발했습니다 . 때로는 하나의 웹 서버로 표시되는 것은 실제로는 서로 다른 여러 웹 서버 클러스터 와 통신하여 사이트의 다른 섹션을 각각 고유 한 쿠키 세트 가있는 다른 클러스터로 라우팅 하는 프록시입니다 .

  4. 쿠키는 싸다. 당신은 규칙의 예외입니다-쿠키 저장소에서 쿠키 수를 확인 하는 사람은 아무도 없습니다 . 또한 모든 클라이언트 측 세션 데이터를 가능한 적은 쿠키로 결합하려고하면 성능상의 이점이 거의 없습니다 .


나는 또한 규칙의 예외입니다.
Michael Slade
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.