ステートレスとステートフル
「Webを支える技術」のRESTに関するところを読んでいて、ステートレスという言葉が出てきた。
毎回、「これってどうゆう意味だっけー?」ってなって、調べる→理解→忘れる→調べる→理解を繰り返していたので、自分なりにまとめようと思います。
この記事に戻ってこればOKという状況にしておきたい。
関連するステートフルについても書いておく。
ステートレス
ステートレスとは
「サーバがクライアントのアプリケーション状態を保存しない」
・
・
らしいです。
「アプリケーション状態ってなんすか?」ってことで、それについても調べました。
アプリケーション状態
セッション状態とも言う。
セッション ・・・システムにログインしてから、ログアウトするまでの一連の操作。
この一連の操作の間の状態がアプリケーション状態。
そのため、「アプリケーション状態 ≒ セッション状態」 ってこと。
簡単にステートレスとは
→サーバ💁♂️「今までクライアントが何やってたかとか、知らないぜ〜。処理に必要な情報全部ちょうだいね」
みたいな感じ🤔
ステートフル
ステートフルとは
サーバがクライアントのアプリケーション状態を保存する
(再度、アプリケーション状態 ・・・セッションの間の状態)
簡単にステートフルとは
→サーバ💁♂️「今までのやりとり覚えてるから、それに合わせてレスポンス返します!」
みたいな感じ🤔
・
・
・
・
ついでに、それぞれのメリットとデメリットにも触れておきましょう。
ステートレスのメリット・デメリット
ステートレスのメリット
・サーバ側のシステムがシンプルになる。→サーバがアプリケーション状態をおぼえる必要がないから
・システムのスケールがしやすい
ステートレスのデメリット
・送信するデータ量が多くなる
ステートフルのメリット・デメリット
ステートフルのメリット
・クライアントとサーバのやりとりが簡潔。
ステートレスのデメリット
・システムのスケールがむずい
まとめ
「ステートレス」・・・サーバは前のやり取りを覚えてくれていない。クライアントがサーバのレスポンスに必要な情報を全て渡す。
「ステートフル」・・・サーバが前のやり取りを覚えているから、クライアントと対話するように処理を行える。
みたいな🤔
Discussion