Jakie są korzyści płynące z bezpaństwowej aplikacji internetowej?
Wygląda na to, że niektórzy architekci www chcą mieć bezpaństwową aplikację internetową. Czy to oznacza w zasadzie nie przechowywanie sesji użytkownika? A może chodzi o coś więcej?
Jeśli jest to tylko zapis sesji użytkownika, jakie są korzyści z tego, że tego nie robisz?
2 answers
- zmniejsza zużycie pamięci . Wyobraź sobie, że google przechowuje informacje o sesji każdego ze swoich użytkowników
- łatwiejsze wsparcie farm serwerów . Jeśli potrzebujesz danych sesji i masz więcej niż 1 serwer, potrzebujesz sposobu synchronizacji danych sesji między serwerami. Zwykle odbywa się to za pomocą bazy danych.
- Zmniejsz problemy z wygaśnięciem sesji . Czasami kończące się sesje powodują problemy, które trudno znaleźć i przetestować. Aplikacje bezsesyjne nie cierp na to.
- linkowalność Url . Niektóre witryny przechowują identyfikator tego, na co użytkownik patrzy w sesjach. Uniemożliwia to użytkownikom po prostu skopiowanie i wklejenie adresu URL lub wysłanie go znajomym.
Uwaga: dane sesji są tak naprawdę danymi buforowanymi. Do tego należy go stosować. Jeśli masz drogie zapytanie, które zostanie ponownie wykorzystane, zapisz je w sesji. Pamiętaj tylko, że nie możesz zakładać, że będzie tam, gdy spróbujesz go zdobyć później. Zawsze sprawdź, czy istnieje przed pobraniem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-25 18:06:26
Z perspektywy dewelopera, bezpaństwowość może pomóc uczynić aplikację łatwiejszą do utrzymania i łatwiejszą do pracy. Jeśli Wiem, że strona, nad którą pracuję, jest bezpaństwowa, nie muszę się martwić o to, że rzeczy są poprawnie zainicjowane w sesji przed załadowaniem konkretnej strony.
Z punktu widzenia użytkownika, bezpaństwowość pozwala na łączenie zasobów. Jeśli strona jest bezpaństwowa, to kiedy linkuję znajomego do tej strony, Wiem, że zobaczą to, co ja widzę.
Ze skalowania i perspektywy wydajności, patrz odpowiedź tsters.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-04 14:27:49