localStorage는 얼마나 지속적입니까?


100

내가 쓰고있는 플러그인의 localStorage에 크게 의존하고 있습니다. 모든 사용자 설정이 여기에 저장됩니다. 일부 설정은 사용자에게 정규식 쓰기를 요구하며 정규식 규칙이 어느 시점에서 사라지면 슬프게 될 것입니다. 이제 localStorage가 얼마나 영속적인지 궁금합니다.

에서 사양 :

사용자 에이전트는 보안상의 이유로 또는 사용자가 요청한 경우에만 로컬 저장 영역의 데이터를 만료시켜야합니다.

위의 내용은 클라이언트 측의 쿠키처럼 작동합니다. 즉, 사용자가 모든 브라우저 데이터 (기록, 쿠키, 캐시 등)를 지우면 localStorage도 잘립니다. 이 가정이 맞습니까?


1
브라우저가 "보안 이유"를 구성하는 것을 결정할 수 있다는 점을 고려할 때 이상적인 세상에서는 이것이 오래 지속될 것이라고 가정하지 않을 것입니다. 그러나 사용자가 명시 적으로 플러시 할 때까지 지속된다고 가정하는 것이 안전 할 수 있습니다.
Corbin

1
localStorage를 사용할 때 한 가지 경고 : Firefox 39, 38 및 37에서 안정적으로 작동하지 않는 것 같습니다 (이전 항목은 확인하지 않음). 사용자 컴퓨터의 약 1 %에서 세션 쿠키는 보존되는 동안 사이트를 탐색하는 동안 localStorage가 손실되는 경우가 있습니다. 나에게 버그처럼 보입니다.
Andreas

1
@PeeHaa, 단순히 쿠키처럼 작동하는 것이 아니라 법적으로 "쿠키" 로도 정의됩니다 . 사실, 저장 정보는 URL의 다른 쿠키와 함께 바로 표시됩니다chrome:settings/cookies
Pacerier

답변:


69

Mozilla는 쿠키처럼 구현합니다.

DOM 저장소는 시간 범위가 "Everything"인 경우 "도구-> 최근 기록 지우기-> 쿠키"를 통해 지울 수 있습니다 (nsICookieManager :: removeAll 사용).

https://developer.mozilla.org/en/DOM/Storage

DOM 저장소에서는 데이터에 대한 만료 기간을 지정할 수 없습니다. 모든 만료 규칙은 사용자에게 달려 있습니다. Mozilla의 경우 이러한 규칙의 대부분은 쿠키 관련 만료 규칙에서 상속됩니다. 이로 인해 대부분의 DOM 저장소 데이터가 최소한 의미있는 시간 동안 지속될 것으로 예상 할 수 있습니다.

http://ejohn.org/blog/dom-storage/

Chrome은이를 캐시처럼 구현합니다.

LocalStorage는 보안 저장소가 아닙니다.

HTML5 로컬 저장소는 일반 브라우저 캐시 에 문자열 형식 으로 암호화되지 않은 데이터를 저장 합니다. .

고집

사용자 (캐시 삭제) 또는 앱에 의해 삭제 될 때까지 디스크에서

https://developers.google.com/web-toolkit/doc/latest/DevGuideHtml5Storage


는 "쿠키 교체"에 관해서는, 전적으로

쿠키와 로컬 스토리지는 실제로 다른 목적을 제공합니다. 쿠키는 주로 서버 측 읽기 용이며 LocalStorage는 클라이언트 측에서만 읽을 수 있습니다. 따라서 문제는 앱에서 누가이 데이터를 필요로합니까? 클라이언트 또는 서버입니까?


1
MDN 링크가 더 명확하게 설명 되었다고 생각합니다 .
Bo Lu

17

기본적으로 로컬 저장소에 크게 의존 해서는 안됩니다 .

세션 저장소와 함께 로컬 저장소는 쿠키를 대체하여보다 일관된 API를 정의하는 것을 목표로합니다. 쿠키와는 몇 가지 차이점이 있습니다.

  • 쿠키는 클라이언트 측과 서버 측 모두에서 액세스 할 수 있지만, 일반적으로 웹 스토리지와 특히 로컬 스토리지는 클라이언트 측에서만 액세스 할 수 있습니다.
  • 도메인 당 5MB 이상 (Firefox, Google Chrome, Opera 및 IE의 경우 10MB)으로 확장 된 용량 (쿠키 공식은 4KB).

그래서 그래 , 당신의 가정이 올바른 것입니다.


1
+1-이것이 내가 로컬 저장소를 캐시로 사용하고 서버의 사용자 데이터를 백업하는 이유입니다. (물론, 그 자리에 로그인 메커니즘이있다 가정합니다.)
josh3736

2
Basically, you should not heavily depend on Local Storage.... 물론 !!
Tenali Raman 2015

7

로컬 저장소 사용에 대해주의해야 할 사항이 있습니다. 매우 브라우저에 따라 다릅니다. 파이어 폭스로 데이터를 저장하는 경우 크롬 등에서 사용할 수 없습니다. 또한 쿠키와 세션을 삭제하는 한 로컬 저장소 삭제 여부와 관련하여 브라우저에 따라 다릅니다. 정말로 앱을위한 로컬 스토리지에 의존 할 계획이라면 세부 사항을 많이 살펴 보겠습니다.


14
쿠키도 마찬가지입니까?
Jeffrey Sweeney 2012 년

3
이것은 쿠키에도 해당됩니다.
Moshe L

아니요, 쿠키의 경우 반드시 해당되는 것은 아닙니다. OSX에서 Webkit을 사용하는 앱은 내 경험상 쿠키를 공유하는 것으로 보입니다. 효과를 잘못 해석하고있을 수 있지만.
Thomas Tempelmann

다른 한편으로, 그는 브라우저에 특정한 플러그인을 작성하고 있습니다.
GuyT

5

로컬 저장소는 클라이언트에서 신뢰할 수 있고 영구적 인 데이터 저장소로 설계되었습니다. 그것은 되지 않는 기능이 세션 저장에 의해 충족 할 수 있도록 설계되어 :는 "더 나은 쿠키"로 디자인했다.

로부터 2011년 12월 웹 저장소 사양 후보 추천 ,

(로컬 저장소)는 여러 창에 걸쳐 있고 현재 세션 이후에도 지속되는 저장 소용으로 설계되었습니다. 특히 웹 응용 프로그램은 성능상의 이유로 클라이언트 측에 전체 사용자 작성 문서 또는 사용자의 사서함과 같은 메가 바이트의 사용자 데이터를 저장하려고 할 수 있습니다.

클라이언트 측 데이터로 - 그것은뿐만 지속적으로하다 어떤 브라우저 구현이 크기 한도 내에서, 클라이언트 측 데이터. 사용자는 클라이언트 측 데이터와 마찬가지로 언제든지 삭제하고 텍스트 편집기에서 열고 편집 할 수 있습니다.


1
아마도 이것은 8 년 전 원래 게시물 이후로 변경되었을 수 있지만 로컬 저장소는 쿠키를 대체하는 데 매우 많이 사용될 수 있습니다 (클라이언트 측 전용 액세스가 필요한 경우). 세션 저장소는 할 수 없습니다. 세션 저장소는 브라우저를 닫는 즉시 삭제됩니다.
Brad

3

iOS 앱에 localStorage를 사용하는 경우 매우주의하십시오. 최신 버전의 iOS (5.1)는 localstorage 및 localdb 데이터를 정기적으로 삭제되는 캐시의 일부로 이동했습니다. 즉, 전혀 영구적이지 않습니다. 이것이 버그인지 정책 변경인지 아직 알 수 없습니다.


2
WebViews에는 사실이지만 Safari에는 해당되지 않습니다.
Trott
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.