Typowa aplikacja internetowa jest w większości bezstanowa ze względu na charakter żądania / odpowiedzi . Protokół HTTP jest najlepszym przykładem protokołu bezstanowego . Ale ponieważ większość aplikacji internetowych potrzebuje stanu , aby utrzymać stan między serwerem a klientem, używane są pliki cookie, które serwer może wysłać w każdej odpowiedzi z powrotem do klienta. Oznacza to, że następne żądanie wysłane przez klienta będzie zawierało ten plik cookie i tym samym zostanie rozpoznane przez serwer. W ten sposób serwer może utrzymywać sesję z bezstanowym klienta, wiedząc, głównie wszystko o aplikacji stanie , ale przechowywane na serwerze. W tym scenariuszu klient w żadnym momencie nie zatrzymuje sięstan , co nie jest sposobem działania Ember.js .
W Ember.js jest inaczej. Ember.js ułatwia pracę programisty, ponieważ rzeczywiście utrzymuje stan dla Ciebie, w kliencie, wiedząc w każdej chwili o jego stanie bez konieczności wysyłania żądania do serwera z prośbą o dane o stanie .
Jednak utrzymywanie stanu w kliencie może czasami powodować problemy ze współbieżnością, które po prostu nie występują w sytuacjach bezstanowych . Jednak Ember.js zajmuje się również tymi problemami dla Ciebie, w szczególności ember-data jest tworzony z myślą o tym. Podsumowując, Ember.js to framework przeznaczony dla klientów stanowych .
Ember.js nie działa jak typowa bezstanowa aplikacja internetowa, w której sesja , stan i odpowiednie pliki cookie są prawie w całości obsługiwane przez serwer. Ember.js przechowuje swój stan całkowicie w javascript (w pamięci klienta, a nie w DOM, jak niektóre inne frameworki) i nie potrzebuje serwera do zarządzania sesją. Powoduje to, że Ember.js jest bardziej wszechstronny w wielu sytuacjach, np. Gdy aplikacja jest w trybie offline.
Oczywiście ze względów bezpieczeństwa wymaga wysyłania do serwera jakiegoś tokena lub unikalnego klucza za każdym razem, gdy żądanie jest uwierzytelniane , w ten sposób serwer może wyszukać token wysyłania (który został pierwotnie wydany przez serwer) i sprawdź, czy jest ważny przed wysłaniem odpowiedzi z powrotem do klienta.
Moim zdaniem głównym powodem używania tokena uwierzytelniania zamiast plików cookie, jak podano w Ember Auth FAQ, jest przede wszystkim natura frameworka Ember.js, a także dlatego, że bardziej pasuje on do paradygmatu stanowych aplikacji internetowych. Dlatego mechanizm plików cookie nie jest najlepszym podejściem do budowania aplikacji Ember.js.
Mam nadzieję, że moja odpowiedź nada Twojemu pytaniu więcej sensu.