私たちが普段閲覧しているWebサイトはクライアントとサーバー間でHTTPという通信プロトコルを使用してやりとりを行っています。
HTTPのリクエストとレスポンスの仕組みは簡潔になっており、クライアントとサーバーの1回のやりとりで処理が完結します。
そのため、サーバーは状態を管理することができていません。
この状態を英語に直すと、ステートとなります。
状態を維持する仕組みをステートフル、状態を維持しない仕組みをステートレスと呼びます。
この記事ではステートフルとステートレスについて解説していきます。
是非、最後まで読んで頂ければと思います。
目次
1.ステートフルとステートレスとは?
クライアントとサーバー間のやりとりにはステートフルとステートレスという仕組みが2通りあります。
ステートとは状態という意味を持っています。
ステートフルとステートレスの違いはクライアントとサーバー間のやりとりを維持するかしないかの違いです。
ステートフルとは前回のデータを保存して、データ保存した内容を処理結果に反映される仕組みのことです。
一方、ステートレスとは前回のデータを保存しないで、前回のデータを内容に処理結果に反映させない仕組みのことです。
2.ステートフルとステートレスの違い
ステートフルとステートレスの違いは状態を保持するかしないかの違いでした。
これだけだと分かりづらいので、人間の会話で例えてみましょう。
1回目でやりとりした相手を2回目に会ったとき、覚えていることをステートフルと例えることができます。
一方、1回目でやりとりした相手を2回目に会ったとき、覚えていないことをステートレスと例えることができます。
このようにステートフルのほうが効率よくコミュニケーションが取れますが、やりとりする人が増えると、負荷が大きくなります。
クライアントとサーバーのやりとりも人の会話のやりとりに似ています。
ステートフルなシステムは1つのサーバーに対して、1つのクライアントである場合、負荷になることはありません。
一方、ステートフルなシステムは1つのサーバーに対して、複数のクライアントである場合、負荷が大きくなります。
通信プロトコルの特性に合わせてステートフルかステートレスをどちらを適応させるかを決めるといいでしょう。
例えば、インターネット上でやりとりが多いHTTPという通信プロトコルは複数のクライアントからの問い合わせが多いので、状態が保持されないステートレスな仕組みになっています。
HTTPは状態が保持されないため、同じリクエストを送った場合、同じレスポンスが返ってきます。
3.入門的なWeb知識を習得したい方へ
最後まで読んで頂きまして、ありがとうございました。
ステートフル、ステートレスはWebにまつわる様々な要素の一部です。
そのため、ステートフル、ステートレスに関する知識だけでなく、Web全般の基礎的な知識を体系的に学ぶことでステートフル、ステートレスの理解がもっと深まるかと思います。
そこでWeb全般の基礎的な知識を習得するのに「この一冊で全部わかるWeb技術の基本」という本がオススメです。
初学者がいきなりWebに関する専門書を読み始めると挫折することが多いです。
そこで途中で挫折せずに最後まで読み切れて、Webの全体像を把握するのに便利な一冊になっています。
この本は初めての方にも読みやすいように見開き1ページで文章と図を織り交ぜて端的に解説されています。
この本で全体像を理解してから専門書を読むと取り組みやすいかと思います。
もし、Webに関する入門的な知識を幅広く知りたいと思った方はこちらの本を是非読んでいただければと思います。
4.ポイント
-
ステートフルとは前回のデータを保存して、データ保存した内容を処理結果に反映される仕組みのことです
-
ステートレスとは前回のデータを保存しないで、前回のデータを内容に処理結果に反映させない仕組みのことです