2011/10/17

ステートフルとステートレスの意味

時々、ウェブアプリケーション系(ロードバランスとか)の仕事に首を突っ込むと、ステートレスとステートフルというキーワードを聞く。

ステートレスとステートフルの意味はどういう意味だろうか?

 

ステートフルとステートレスを店員と客を例があった

ステートフルとは (ステートフルの例)

  1. 客: こんにちは
  2. 店員: いらっしゃいませ。○○バーガーへようこそ
  3. 客: ハンバーガーセットをお願いします
  4. 店員: サイドメニューは何になさいますか?
  5. 客: ポテトで
  6. 店員: ドリンクは何になさいますか?
  7. 客: ジンジャーエールで
  8. 店員: +50円でドリンクをLサイズにできますがいかがですか?
  9. 客: Mでいいです
  10. 店員: 以上でよろしいですか?
  11. 客: はい
  12. 店員: かしこまりました

ステートレスとは (ステートフレスの例)

  1. 客: こんにちは
  2. 店員: いらっしゃいませ。○○バーガーへようこそ
  3. 客: ハンバーガーセットをお願いします
  4. 店員: サイドメニューは何になさいますか?
  5. 客: ハンバーガーセットをポテトでお願いします
  6. 店員: ドリンクは何になさいますか?
  7. 客: ハンバーガーセットをポテトとジンジャーエールでお願いします
  8. 店員: +50円でドリンクをLサイズにできますがいかがですか?
  9. 客: ハンバーガーセットをポテトとジンジャーエール(M)でお願いします
  10. 店員: 以上でよろしいですか?
  11. 客: ハンバーガーセットをポテトとジンジャーエール(M)でお願いします。以上
  12. 店員: かしこまりました

 

要するに

前後の状態に依存しないのがステートレス(stateless)で、前後の状態を保持しているのがステートフル(stateful)という意味

 

ステートレスの場合は、こんなケースが実現可能

  1. 客: こんにちは
  2. 店員1: いらっしゃいませ。○○バーガーへようこそ
  3. 客: ハンバーガーセットをお願いします
  4. 店員2: サイドメニューは何になさいますか?
  5. 客: ハンバーガーセットをポテトでお願いします
  6. 店員3: ドリンクは何になさいますか?
  7. 客: ハンバーガーセットをポテトとジンジャーエールでお願いします
  8. 店員4: +50円でドリンクをLサイズにできますがいかがですか?
  9. 客: ハンバーガーセットをポテトとジンジャーエール(M)でお願いします
  10. 店員5: 以上でよろしいですか?
  11. 客: ハンバーガーセットをポテトとジンジャーエール(M)でお願いします。以上
  12. 店員6: かしこまりました

 

参考:

yohei-y:weblog: ステートレスとは何か

1 件のコメント: