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

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

에서 사양 :

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

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



답변

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는 클라이언트 측에서만 읽을 수 있습니다. 따라서 문제는 앱에서 누가이 데이터를 필요로합니까? 클라이언트 또는 서버입니까?


답변

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

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

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

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


답변

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


답변

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

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

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

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


답변

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


답변