문제

거의 모든 경우에 사용자 기본 설정 데이터는 사용자 프로파일 API를 사용할 때와 거의 동일하게 좋은 결과를 가진 쿠키에 저장 될 수 있다고 생각합니다. 쿠키 사용 (인증 된 사용자의 경우)의 단점은 쿠키를 삭제하거나 타임 아웃 할 수있는 것 같습니다.이 경우 사용자 기본 설정 데이터가 손실됩니다. 익명의 사용자의 경우 환경 설정 데이터를 세션 전체에서 지속 해야하는 경우 사용자 프로파일을 사용하는 경우에도 쿠키를 사용해야합니다.

그렇다면 사용자 기본 설정을 저장하기 위해 사용자 프로파일이나 쿠키를 사용하는 가장 큰 장점/단점은 무엇입니까?

도움이 되었습니까?

해결책

쿠키에서 모든 기본 설정 데이터를 유지하는 데있어 또 다른 단점은 클라이언트의 모든 요청과 데이터 변경이 이루어질 때마다 서버로부터의 모든 요청에서 해당 모든 데이터가 전송되어야한다는 것입니다. 이것은 광대역 시대의 사소한 지점처럼 보일 수 있지만 여전히 추가 오버 헤드입니다. 프로파일을 사용하여 API는 데이터가 서버에서 보유되고 있으며 브라우저에서 세션 식별 쿠키 만 전송해야합니다.

또한, 당신이 언급했듯이, 익명 사용자의 경우 쿠키가 삭제되면 DB에서 보유한 사용자 기본 설정에 더 이상 액세스 할 수 없습니다. 그러나 웹 사이트의 등록 된 사용자는 그렇지 않습니다. 쿠키를 제거하면 서버는 다음에 로그인 할 때에도 사용자 기본 설정을 검색 할 수 있습니다.

다른 팁

사이트에 등록 할 때의 이점 중 하나는 내 선호도를 기억한다는 것입니다. 서버 대신 내 컴퓨터에 해당 정보를 저장하고 다른 컴퓨터에서 사이트에 로그인하면 유용성의 관점에서, 이것은 상당히 나쁘다.

익명의 사용자의 경우 쿠키에 프리프를 저장하는 것은 상당히 합리적 인 것처럼 보일 수 있습니다. 당신은 그들이 누구인지, 또는 그들이 복귀 할 것인지 알지 못하며, 한 세션에서 다음 세션으로 운동 할 수 없습니다. 그러나 쿠키에 일종의 토큰을 저장하고 서버의 환경 설정 저장소에 매핑하는 것이 좋습니다.

또한 다른 브라우저가 쿠키에 대한 다른 구현이 다른 것을 발견했습니다. 50 개의 쿠키를받습니다 하나의 도메인에서 (원래 20에서 상승), 여전히 총으로 제한됩니다. 전체 쿠키 컬렉션에 대한 4096 바이트 (및 이전) - 다른 브라우저는 도메인이 아닌 쿠키 당 4KB를 지원합니다.

쿠키는 최대 길이가 제한되어 있으며 통제를 넘어 구현을 사용하고 있습니다 (결국 방문자 브라우저의 기능입니다). 개인적으로, 나는 통제 할 수없는 알려지지 않은 제 3 자 구현에 의존하는 것을 싫어하고, 필요한 경우 가능한 가장 간단한 방법으로 사용하려고 노력하고 있습니다.

그래서 내가 오는 곳에서 나는 항상 서버에 사용자 데이터를 저장하고 해당 정보를 가리키는 쿠키를 전달할 것입니다.

잠재적으로 큰 데이터 덩어리로 브라우저를 신뢰하지 않는 것 외에도 브라우저뿐만 아니라 일부 바이러스 백신 응용 프로그램 또는 그 밖의 것에 따라 손실되거나 잘못 저장되거나 전혀 저장되지 않을 수 있습니다)는 다양한 장점이 있습니다.

  • 사용자로부터 구현을 숨기고 있습니다. 쿠키에 데이터를 저장하는 경우 누구나 볼 수 있으며 마음대로 분석하거나 수정할 수 있습니다. 이로 인해 사용자는 쿠키를 좋아하는 쿠키를 변경하여 일부 사용자가 특정 구현에 따라 특정 구현에 의존하기 때문에 제거하고 싶어 할 수도 있습니다.
  • 쿠키는 일반 텍스트로 저장되므로 공유 기계에 모든 사람이 더 이상 이전 사용자가 만든 모든 설정을 쉽게 보거나 마음대로 변경할 수 없습니다.

그러나 가장 중요한 요점은 quite 작업 브라우저 구현과의 연결이 끊김입니다 (소형 토큰을 저장하는 것만 저장하는 것이 일반적이고 테스트 된 유스 케이스입니다).

쿠키를 사용하는 가장 큰 단점 중 하나는 쿠키를 복사 할 수 있다는 것입니다. 따라서 인증 정보를 저장하는 데 위험합니다.

사용자 프로필 API에 익숙하지 않지만 서버에 정보를 저장하고 있다고 생각합니다 (?). 그렇다면 많은 사용자에게 문제가 발생할 수 있습니다.

전반적으로 가장 좋은 솔루션은 정보의 지속성을 보장하는 경우 사용자 프로필을 사용하는 것입니다.

쿠키에 사용자 데이터를 지속하는 ProfileProvider를 작성할 수 있으므로 지속하려는 상태가 쿠키 (크기, 보안 등)에 적합한 상태를 결정하면 두 세계를 최대한 활용할 수 있습니다.

실제로 ASP.NET 프로파일 제공 업체를 사용할 때 익명 사용자의 쿠키에서 선호도 데이터를 지속 할 필요가 없습니다. 쿠키에 현재 userID (끔찍한 세션 관련 문자열)를 저장하기 만하면됩니다. 이것은 후속 방문시 이전의 userID가되며 이전 프로필 정보를 가져 와서 현재 프로파일로 마이그레이션하거나 이전 익명 프로필로 인증 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top