🎭

ステートレスとステートフル

2021/05/10に公開

「Webを支える技術」のRESTに関するところを読んでいて、ステートレスという言葉が出てきた。

毎回、「これってどうゆう意味だっけー?」ってなって、調べる→理解→忘れる→調べる→理解を繰り返していたので、自分なりにまとめようと思います。

この記事に戻ってこればOKという状況にしておきたい。
関連するステートフルについても書いておく。

ステートレス

ステートレスとは

「サーバがクライアントのアプリケーション状態を保存しない」


らしいです。

アプリケーション状態ってなんすか?」ってことで、それについても調べました。

アプリケーション状態

セッション状態とも言う。

セッション ・・・システムにログインしてから、ログアウトするまでの一連の操作

この一連の操作の間の状態がアプリケーション状態

そのため、「アプリケーション状態 ≒ セッション状態」 ってこと。

簡単にステートレスとは

→サーバ💁‍♂️「今までクライアントが何やってたかとか、知らないぜ〜。処理に必要な情報全部ちょうだいね」

みたいな感じ🤔

ステートフル

ステートフルとは

サーバがクライアントのアプリケーション状態を保存する

(再度、アプリケーション状態 ・・・セッションの間の状態)

簡単にステートフルとは

→サーバ💁‍♂️「今までのやりとり覚えてるから、それに合わせてレスポンス返します!」

みたいな感じ🤔



ついでに、それぞれのメリットとデメリットにも触れておきましょう。

ステートレスのメリット・デメリット

ステートレスのメリット

サーバ側のシステムがシンプルになる。→サーバがアプリケーション状態をおぼえる必要がないから
システムのスケールがしやすい

ステートレスのデメリット

送信するデータ量が多くなる

ステートフルのメリット・デメリット

ステートフルのメリット

クライアントとサーバのやりとりが簡潔

ステートレスのデメリット

システムのスケールがむずい

まとめ

「ステートレス」・・・サーバは前のやり取りを覚えてくれていない。クライアントがサーバのレスポンスに必要な情報を全て渡す。

「ステートフル」・・・サーバが前のやり取りを覚えているから、クライアントと対話するように処理を行える。

みたいな🤔

Discussion