Сесията и локалното съхранение са методи за съхранение на браузъра, които ви позволяват да съхранявате данни заедно с HTTP заявки без състояние. Те са алтернатива на базираното на бисквитки съхранение и имат много приложения в уеб разработката.
Въпреки че работят по много подобен начин, има значителни разлики, които трябва да знаете.
Локално съхранение и съхранение на сесии: какви са техните приложения?
Локалното съхранение и съхранението на сесии са API на JavaScript, които можете да използвате за съхраняване на данни от страна на клиента. Те позволяват на уебсайта да съхранява данни в браузъра и да инструктира браузъра за достъп до тях по-късно.
В зависимост от вашите нужди можете да използвате локално или сесийно хранилище за съхраняване на данни. И двата метода за съхранение са подобни на бисквитките, но без същата поверителност засяга и заобикалящите бисквитки. Поради това повечето съвременни уебсайтове предпочитат да използват само методи за уеб съхранение или да ги комбинират с бисквитки като резервен вариант.
За разлика от бисквитките, локалното хранилище и хранилището за сесии не изпращат данни към сървъра чрез HTTP заглавки. Трябва да ги използвате само за функционалност от страна на клиента.
Освен това локалното и сесийното хранилище имат ограничение за съхранение от около 5 MB на домейн. Те осигуряват повече място за съхранение от бисквитките, които имат капацитет само от 4 KiB на бисквитка.
Какво е съхранение на сесии?
Една сесия на сърфиране се равнява приблизително на използването на уебсайт. Ако посетите сайт, разгледате за малко, след което изключите компютъра си, можете да мислите за това време като за една сесия. Конфигурацията на вашия браузър може да промени това по фини начини, но сесията има за цел да представи частта от времето, през което взаимодействате със сайт.
Съхранението на сесията е уникално за всеки раздел на браузъра. Ако отворите нов раздел и навигирате до същия сайт, ще започнете нова сесия със собствено хранилище. Въпреки това, ако използвате функцията за „дублиране на раздел“ във вашия браузър, това може да използва повторно същата сесия. Не можете да разчитате твърде много на конкретните детайли на една „сесия“. Вместо това се фокусирайте върху основната концепция: съхранението на сесията е временно.
Съхранението на сесии има вградени API методи за работа с данни за двойка ключ/стойност. Можете да съхранявате данни от JavaScript така:
sessionStorage.setItem("ключ", "стойност");
И за да извлечете съхранената стойност:
sessionStorage.getItem("ключ");
Имайте предвид, че и двете ключ и стойност са само типове низове. Ако искате да съхраните различен тип, ще трябва да го преобразувате в низ, изрично или неявно.
Какво е локално съхранение?
Локалното хранилище поддържа данни във всички екземпляри на сайт, независимо дали са в различни раздели или прозорци. Освен това е постоянен, така че данните няма да изчезнат, когато затворите браузъра си.
Когато отворите уебсайт, който преди това е използвал локално хранилище, той винаги ще има достъп до тези съхранени данни.
Като уеб разработчик можете да използвате този механизъм, за да запазите данни за даден потребител. Някои уебсайтове може да използват това, за да ви държат влезли или да предоставят по-персонализирано изживяване.
Подобно на хранилището за сесии, можете да зададете локален обект за съхранение с един ред JavaScript код:
localStorage.setItem("ключ", "стойност");
За достъп до стойността на ключа:
localStorage.getItem("ключ");
Обърнете внимание, че тези методи работят по същия начин като съхранението на сесии, те просто използват различен тип хранилище на данни.
Докато хранилището на сесията изчиства данните веднага щом сесията приключи, единственият начин да изчистите локалното хранилище е изрично да го изтриете. И двата типа съхранение предлагат два метода за изчистване на данни. Първият премахва конкретен елемент от данни въз основа на неговия ключ:
localStorage.removeItem("ключ");
Можете също така да премахнете всички данни, съхранявани от вашия сайт, независимо от неговия ключ:
localStorage.clear();
Можете да научите повече за тези методи на API за уеб съхранение на javascript.info уебсайт.
Кога имате нужда от локално хранилище?
Тъй като локалното хранилище е постоянно, най-добре е да запазите данните при посещенията на потребителя. Ако искате да съхранявате предпочитанията на сайта или да кеширате дългосрочни данни, локалното хранилище е подходящо. Може да не искате да съхранявате по-чувствителни данни с помощта на локално хранилище, тъй като е постоянно.
Тъй като локалното и сесийното съхранение са методи от предния край, може да искате да избегнете използването им за базирани на сървър функции като потребителско влизане. Бихте могли да разгледате бисквитките като алтернатива в тези случаи.
Кога имате нужда от съхранение на сесии?
Ако искате да съхранявате данни само докато потребителят взаимодейства с вашия сайт, тогава съхранението на сесии е идеално. Това може да е за краткосрочно кеширане или данни за употреба за конкретно посещение на вашия сайт.
Съхранението на сесията е по-добро за съхраняване на по-чувствителна информация, тъй като тя изтича.
Локално съхранение срещу. Съхранение на сесии: Кое е по-сигурно?
Както видяхте, методите за локално и сесийно съхранение са сходни по много начини, но все пак имат персонализирани случаи на употреба. Не трябва да смятате нито едното за безопасно, тъй като те са технологии от предния край, до които JavaScript има достъп. Съхранението на сесии обаче е много удобно и временният му характер е успокояващ.
Локалното хранилище е постоянно, така че може да създаде допълнителни опасения за сигурността. Всеки, който отвори браузър, на теория може да получи достъп до локално хранилище. Трябва да сте наясно с как работят XSS атаките и как да ги предотвратим.
Локално хранилище или съхранение на сесии: Кое трябва да използвате?
Съхранението на сесии е малко по-сигурно поради временния си характер. Вашият избор на метод за уеб съхранение обаче зависи от вашите изисквания. JavaScript съхранението е най-подходящо само за използване от страна на клиента. Но той предлага удобно базирано на браузър хранилище на данни и е много лесен за използване.
Не забравяйте, че докато локалното хранилище съхранява данни в няколко раздела, съхранението на сесиите е уникално за всеки раздел в по-голямата си част. Трябва да се уверите, че приложението ви прави възможно най-малко предположения и се грижи за крайни случаи.
Бисквитките са по-стара форма на постоянство на данните, но все още се използват много. Може да искате да ги проверите за данни, които трябва да предадете на сървъра.