皆さんこんにちは。どんぶラッコです。
今日は、ステートレスというキーワードを取り上げてみたいと思います
ステートレスの対義語としてステートフルっていう言葉もあります。
このステートレスな通信、ステートフルな通信とはどういう違いがあるのでしょうか。
会話の例えを伝えな使いながら皆さんと一緒に学習していきましょう。
会話例: ステートフル な会話
まずはステートフルから。こんな場面を想像してみてください。靴屋に行ってですね、この靴をくださいと店員さんに注文をする場面です。

これって皆さんがよく会話をするときの会話だと思います。これを覚えておいた上でステートレスの会話例をみてみましょう。
会話例: ステートレスな会話
さて、同じ会話の例を使いながら見ていきましょう。

「青い靴をください」と言います。そうすると「サイズはどうしましょうか」と聞かれます。ここまでは一緒ですね。
違うのはここからです。先ほどの会話では「26センチで」と応答していましたが、ステートレスでは「青い靴の26センチをください」と言っています。

ここでステートレスの意味を紐解いてみましょう。ステートとは”状態”という意味です。それが”レス”、つまりステート(状態)がないということなので、過去の状態を保存してないという意味になります。
違い: 会話内容を覚えているかどうか
つまり、会話相手が会話の内容を覚えているのがステートフル という意味です。逆に、全ての情報を毎回伝えないと伝わらない、つまり会話相手が会話内容を覚えていないのがステートレスっていうような言い方ができます。

もし、ステートレスな会話をしている時にステートフル のように「26センチをください」とだけ伝えたらどうなるでしょうか。
…店員さんは何の26センチなのか理解できません。

まとめ: HTTPはステートレスな通信 とはつまり…
まとめます。”HTTPはステートレスな通信ですよ”っていうのは、どういうことを言ってるのか。
それは、HTTPは会話のやりとり内容を覚えない通信方法なんですよってことなんです。

ちなみに皆さんセッションっていう言葉とか聞いたことありますかね。
このセッションっていうのは、HTTPをステートフルにするための仕組みのことです。
例えば、買い物かごに何が入ってるかとか、ログイン情報とかですね。これについてはまた今度お話ししましょう!
ということで、今回はステートレスについての解説でした。
資料 & 解説動画
