Legjobb válasz
Az állam nélküli azt jelenti, hogy nincs állapota.
Vegyünk például egy webszervert. Lehet állapot nélküli vagy hontalan.
Az Államszerű azt jelentené, hogy a szerver tárol bizonyos munkamenet-információkat, hogy azonosítsa a felhasználót több későbbi kérés során. Ha a munkamenet érvényes, akkor a kérelmek sikeresek lesznek.
Az állam nélküli az ellenkezője. A szerver nem tárol semmilyen állapotot, vagyis a munkamenet-információkat a felhasználó azonosítására több későbbi kérés során. Minden kérelemnek tartalmaznia kell a felhasználó azonosításának valamilyen módját. Ennek egyik módja egy token (például JSON webes token vagy oAuth) használata. Ezt a tokent minden egyes kéréshez elküldjük (általában a kérelem fejlécében).
Ez feleslegessé teszi a szerverek számára a munkameneti adatok megőrzésének szükségességét, ami kihat a skálázhatóságra, mivel a több szerverre való költözés egyébként a munkamenet adatainak megosztását igényli. / p>
Válasz
Hallottál már valamiről, amit úgy hívtak, hogy “munkamenet” az interneten?
Azzal fogom elmagyarázni, hogy nem általánosítom a fogalmat, de kitartok egy gyakoribb találkozás, amelyet szinte mindannyian tapasztalhattunk az interneten vagy a WWW-n.
Az állapottartó szerverek munkamenetek formájában tartják fenn a felhasználó állapotinformációit. Ez eltér a webhelyen történő „bejelentkezésről a fiókjába”. Manapság a WWW-n keresztül elérhető HTTP-webhelyek többsége fenntartja a felhasználó munkamenet-információit. Tehát egy munkamenet futtatása során az összes kérése ahhoz a munkamenethez tartozik, amelyet akkor nyitottak meg, amikor először meglátogatott egy adott oldalt a webhelyen. A munkamenet általában csak akkor szűnik meg, amikor bezárja a böngészőt. A munkamenet-információk karbantartása elősegíti a webkiszolgáló személyre szabott szolgáltatását. Ezenkívül a munkamenetek segítenek az egyidejű webes forgalom bármikor történő megfigyelésében, és olyan biztonsági funkciókat kínálnak, mint például egy olyan rosszindulatú felhasználó betiltása, aki megpróbálja lebontani a szervert azzal, hogy számos kérést küld a szervernek (valószínűleg ugyanazt a létrehozott munkamenetet használva). Végül a munkameneteket a webhelyre történő „bejelentkezéshez” használják. Amint bejelentkezik a webhelyre, az egyedi azonosítóját a webszolgáltatás elmenti a megnyitott munkamenetben, és minden további kérése után a webkiszolgáló tudja, hogy te vagy az, aki hozzáfér a szolgáltatáshoz.
Hontalan a szerverek viszont nem tárolnak semmilyen állapotinformációt a felhasználó számára. Minden kérés teljesen független az előző kéréstől. A HTTP-t használó leggyakoribb hontalan architektúra a REST (REpresentational State Transfer), amelyet webes API-k tervezésére használnak. A hontalan szerverek továbbra is képesek azonosítani a felhasználót, ha a szolgáltatás iránti kérelem egyedi felhasználói azonosítót tartalmaz, amelyet korábban a felhasználóhoz rendeltek. De ezt a felhasználói azonosítót minden kérelemben meg kell adni, ellentétben az olyan Stateful szerverekkel, amelyek fenntartják ezt a felhasználói azonosítót a munkamenetben, és a kérelem adatainak nem kell feltétlenül tartalmazniuk ezt az azonosítót.
Ezzel a válaszsal I Megpróbáltam aláhúzni az állam és a hontalan szerverek közötti főbb különbségeket. A különbségek kiterjedhetnek általánosabb forgatókönyvekre is.