HTTP je bezstavový protokol

  • to znamená, že požadavky (Requesty) jsou na sobě nezávislé, tedy server si při zpracování nového stavu nepamatuje, co bylo v předchozím Requestu

  • mezi Requesty se na serveru neuchovávají žádné informace

  • tedy si musím já vytvořit svoje mechanismy na vrstvě aplikace, které mi budou stavy držet

    • nejčastější způsoby jsou Cookies, Sessions nebo skryté pole ve formulářích
  • výhody pro servery

    • jednodušší na implementaci, server si pro každého klienta nemusí vlastně nic pamatovat
    • lepší škálovatelnost
      • je jednoduché při rostoucí zátěži přidávat další servery, protože Requesty jsou nezávislé a nemusí se řešit synchronizace mezi servery
      • jednoduchý load balancing - není potřeba od jednoho uživatele přeposílat na ten stejný server, protože by tam měl nějaký uložený stav
  • nevýhody - pro lepší zážitek z webové aplikace (držet nákupní košík, přihlášeného uživatele atd.) musím používat jiné způsoby (cookies, session atd.)

Stav je reprezentován v URL

  • tímhle způsobem se dá stav aplikace jednoduše sdílet
    • a může být řízený odkazy
  • nehodí se pro důvěrný obsah
  • dobré pro vyhledávání

Cookies

Session