ステートレスとは?REST設計における意味とステートフルとの違いも解説

ステートレスとは?REST設計における意味とステートフルとの違いも解説

投稿日: 2025年06月12日

Tips
要約
  • ステートレスサーバは、クライアントの状態をサーバ側で保持せず、各リクエストに必要な情報を含めて送信するアーキテクチャスタイルです。
  • これによりサーバの実装が簡略化され、スケーラビリティが向上し、大量のリクエストを効果的に処理できます。
  • 次の記事ではRESTの他の重要な制約、例えばキャッシュについて説明します。
音声で記事を再生
0:00

はじめに

RESTの設計では、「クライアント/サーバ」モデルを土台とし、そこにいくつかの**制約(アーキテクチャスタイル)**を組み合わせて構築されます。
本記事では、その最初の制約である「ステートレスサーバ」について解説します。
「なぜステートレスがREST設計の中で重要なのか?」という視点を交えて見ていきましょう!!

以下、関連する記事となります。
良かったらご覧ください。




ステートレスサーバとは

「クライアント/サーバ」に最初に追加するアーキテクチャスタイルです。
「ステートレス」とは「状態(state)を持たない」と言う意味です。

具体的には、
「クライアントの状態(ログイン情報や捜査の途中経過)をサーバ側で保持しない」と言う設計方針を指します。
つまり、サーバはリクエストが来るたびに、それが”何者”か・”何の文脈”かを全てリクエスト内で判断できるようにする。と言うことです。

例で理解するステートレスとステートフル

○ステートフルなサーバ(状態あり)

  • ユーザーがログイン

  • サーバ側にセッションを保持

  • ユーザーは後続のリクエストでセッションIDだけを送信

  • サーバは保持済みセッション情報を使って状態を把握する

○ステートレスなサーバ(状態なし)

  • 各リクエストに、認証トークン(例: JWT)や必要な情報を毎回つけて送る

  • サーバは毎回その情報だけを使って処理をする

  • セッションは保持せず、リクエストの処理が終われば何も覚えていない

具体的なリソース消費の差(例)

ステートレスとは?REST設計における意味とステートフルとの違いも解説|ShiftBブログ

ステートレスサーバの利点

サーバ側が実装を簡略化できること。
スケーラビリティが高い(どのサーバでも同じリクエストを処理できる)
使ったメモリやCPU・ DB接続などを即座に解放よく大量のリクエストをさばくことができます。

アーキテクチャ構成としての位置づけ

ステートレスサーバの導入により、RESTシステムは「クライアント / ステートレスサーバ」という構成をとるようになります。

さいご

ステートレスは、RESTアーキテクチャにおける重要な構成要素のひとつです。
RESTではこの他にも「キャッシュ」「統一インターフェース」などの制約が存在し、それらが積み重なることで堅牢で拡張性の高いWebアーキテクチャが実現されます。
次回は「キャッシュ」について詳しく見ていきましょう。

シェア!

Threads
Loading...
記事一覧に戻る
Threads
0