ステートフルとステートレスについて
-
ステートフル(stateful):状態を維持する仕組み
前回のデータを保存して、データ保存した内容を処理結果に反映される仕組み- メリット
1. やり取りが完結に済む
2. それによりネットワークの帯域を節約できる - デメリット
1.クライアントの状態を都度把握しておかなければいけないのでクライアントが増えると負荷も増える
2. サーバを複数台設置する場合にはそれぞれのサーバ間でクライアントの状態を同期しなければいけない
3. スケールアウトには向かない
- メリット
-
ステートレス(stateless):状態を維持しない仕組み
前回のデータを保存しないで、前回のデータを内容に処理結果に反映させない仕組み- メリット
1. クライアントのリクエストは状態に依存せず、常にリソースに対する操作に必要十分な情報となる
2. 処理がクライアントの状態に依らないので処理がシンプル
3. サーバが増えてもそのままのリクエストでいつも同じリソースに対する操作ができる
4. スケールアウト向き - デメリット
1.やり取りが冗長
2. リソース操作が必要な場合に毎度やり取りが必要
3. サーバが状態を保持していないのでトラブル時のハンドリングが難しい場合がある
- メリット