【ステートフル】と【ステートレス】の違いとは?例文付きで使い方や意味をわかりやすく解説
ステートフルとステートレスの分かりやすい違い
ステートフルとステートレスの違いは、「前のやり取りを覚えているか」「毎回独立したものとして扱うか」にあります。
ステートフルは、サーバーやプログラムが前回までのやり取りの内容を記憶したまま次の処理を行う仕組みです。
ステートレスは、一つ一つの要求を前後と切り離した独立したものとして扱う仕組みです。
ステートフルとは?
ステートフルとは、サーバーやプログラムが前回までのやり取りの内容を記憶したまま次の処理を行う仕組みのことです。
一度ログインすれば別の画面でも本人だと分かる、買い物かごの中身が残るといった動きを支える仕組みとして用いられます。
状態を持つぶん一回ごとのやり取りは短く済み、途中経過を前提にした処理も書きやすいという性質を持ちます。
状態をどこに置くかという課題があり、同じ利用者を同じサーバーへ案内し続ける工夫や、サーバーが止まったときの引き継ぎの備えが要ります。
ステートフルの例文
- ( 1 ) このアプリはステートフルで、入力途中のフォーム内容がサーバーに保たれる。
- ( 2 ) ステートフルな通信では、サーバーがそれまでのやり取りを覚えたまま応じる。
- ( 3 ) 買い物かごをサーバーで管理する以上、ここはステートフルにならざるを得ない。
- ( 4 ) 対戦型ゲームの通信はステートフルで、試合の状態をサーバーが保ち続ける。
ステートフルの会話例
ステートレスとは?
ステートレスとは、一つ一つの要求を前後と切り離した独立したものとして扱う考え方のことです。
処理に必要な情報をそのつど要求する側がまとめて渡す仕組みとして用いられます。
受け取る側は前回の内容を覚えていないため、どのサーバーが受けても同じ結果を返せるという性質を持ちます。
その代わり毎回の要求に情報を載せるので通信量は増えやすく、本人だと示す情報を毎回安全に運ぶ設計が必要になります。
ステートレスの例文
- ( 1 ) このAPIはステートレスなので、呼び出すたびにトークンを添えて送る。
- ( 2 ) ステートレスに作り直し、混雑時はサーバーを足すだけで済むようになった。
- ( 3 ) ステートレスな設計では、どの台に届いても結果は変わらない。
- ( 4 ) サーバーがステートレスなら、一台止まってもほかの台が処理を引き受けられる。
ステートレスの会話例
ステートフルとステートレスの違いまとめ
ステートフルとステートレスの違いは、前のやり取りを覚えているかどうかにあります。
ステートフルはサーバーが状態を保つため続きを前提にした処理を書きやすいのに対し、ステートレスは覚えないぶん台数を増減しやすいものの通信量は増えやすいです。
「状態を保つステートフル」と「独立して扱うステートレス」と区別されます。
この記事を含むシリーズ
- 【ボトルネック】と【レイテンシ】
- 【スケールアップ】と【スケールアウト】
- 【冗長化】と【負荷分散】
- 【スループット】と【レスポンスタイム】
- 【モノリス】と【マイクロサービス】
- 【疎結合】と【密結合】
- 【ステートフル】と【ステートレス】 この記事
- 【ロードバランサー】と【リバースプロキシ】
ステートフルとステートレスの読み方
- ステートフル(ひらがな):すてーとふる
- ステートフル(ローマ字):suteetofuru
- ステートレス(ひらがな):すてーとれす
- ステートレス(ローマ字):suteetoresu